我最近在Google Play上签了一个apk文件发布,当我在Google Play上下载该应用程序并安装它时,它会抛出java.lang.ExceptionInInitializerError。
我的同事和我怀疑图书馆没有被添加到我们签名的apk文件中。
我们将额外的库添加到我们的项目中,方法是将其添加到项目的构建路径中。
此外,我们尝试添加到项目中的库是ActionBarSherlock。
有没有理由我们的库没有包含在我们签名的apk文件中,因为我们注意到我们签名的apk的文件大小比我们的未签名版本小?
有人能指出我们正确的方向正确签署我们的apk文件,以便它包含我们添加到构建路径中的库吗?
答案 0 :(得分:4)
我有完全相同的错误 android.support.v4 jar文件。 deeJ是正确的,如果你看ActionBarSherlock网站它告诉你在proguard文件中添加以下内容:
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
-keepattributes *Annotation*
答案 1 :(得分:2)
我发现问题是Proguard在ActionBarSherlock上打得不好。尝试使用此处提供的提示:
答案 2 :(得分:0)
不确定您的确切构建过程,我的建议是将Maven用于您的构建。可能是您的依赖性仅用于调试版本而不是发布版本。我建议的另一件事是,在将某些东西放到app商店之前,使用Android Debug Bridge(adb)在设备上手动安装它并检查这些错误。