【问题标题】:"Unknown Source" in release apk发布 apk 中的“未知来源”
【发布时间】:2012-10-31 12:32:29
【问题描述】:

我的调试 APK 中的一切都运行良好。但是,当我导出我的 APK 并安装它时,一切正常,直到我调用引用的库。

E/AndroidRuntime(32571):    at com.znood.znoodapp.ShowResultsActivity.a (Unknown Source)

我正在使用 ProGuard。

我的库位于 libs 目录中,并已添加到构建路径中。

任何指针都非常感谢=)

【问题讨论】:

  • 你在proguard-project.txt文件中添加了引用的库吗?

标签: android apk


【解决方案1】:

问题出在 Google Gson 库上。 Proguard 将类名转换为混淆的类名,从而导致 json 转换错误。

为了解决这个问题,请确保您的 proguard-project.txt 中有以下内容

# the classes that you use for Gson conversion
-keep class com.yourapp.objects.** { *; }

# without this line, I was having ClassCastException
-keepattributes Signature, *Annotation*

我希望这对某人有帮助 =)

【讨论】:

    【解决方案2】:

    如果你还没有在proguard-project.txt 中定义你的库,那么你可以像这样添加

    -libraryjars /libs/smack.jar
    -libraryjars /libs/libphonenumber-5.0v1.5.jar

    Android obfuscate app using proguard keeps obfuscating library jars - or is it?

    【讨论】:

    • 我按照该帖子中的说明进行操作;仍然崩溃。我使用 dex2jar 来确保 jar 中的代码在那里。它是......我以前没有罐子,所以你的建议可能会把我带到某个地方,谢谢:-)
    • 您也可以使用 Eclipse IDE 对您的 apk 进行签名。 checkEclipse 的导出向导
    • 这就是我签署它们的方式:-)
    • 感谢您的帮助,@juned :-) 问题在于 Gson 使用的类被重命名 =)
    • 哦,太好了,如果您的问题得到解决,那么您可以回答自己的问题并标记为答案:)
    猜你喜欢
    • 2013-03-10
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2018-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多