4

我最近签署了一个在 Google Play 上发布的 apk 文件,当我在 Google Play 上下载该应用程序并安装它时,它会抛出 java.lang.ExceptionInInitializerError。

我和我的同事怀疑该库没有被添加到我们签名的 apk 文件中。

我们通过将附加库添加到项目的构建路径中来将其添加到项目中。

此外,我们尝试添加到项目中的库是 ActionBarSherlock。

我们的库没有包含在我们签名的 apk 文件中是否有原因,因为我们注意到我们签名的 apk 的文件大小比我们的未签名版本小很多?

谁能指出我们正确签署我们的apk文件的正确方向,以便它包含我们添加到构建路径中的库?

4

3 回答 3

4

我有完全相同的错误,缺少android.support.v4 jar 文件。如果您查看 ActionBarSherlock 网站,deeJ 是对的,它告诉您在 proguard 文件中添加以下内容:

-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

-keepattributes *Annotation*
于 2012-10-02T12:02:44.497 回答
2

我发现问题在于 Proguard 不能很好地与 ActionBarSherlock 配合使用。尝试使用此处给出的提示:

http://actionbarsherlock.com/faq.html

于 2012-10-01T14:52:24.033 回答
0

不确定您的确切构建过程,我的建议是使用 Maven 进行构建。可能是您的依赖项仅用于您的调试版本而不是您的发布版本。我建议的另一件事是,在将某些内容放到应用商店之前,请使用 Android 调试桥 (adb) 在设备上手动安装它并检查这些类型的错误。

于 2012-10-01T15:12:56.340 回答