2012-09-18 27 views
4

我最近在Google Play上籤署了一個apk文件以供發佈,當我在Google Play上下載應用程序並安裝它時,它會拋出java .lang.ExceptionInInitializerError。Android:已簽名的Apk文件不包含外部庫並引發「java.lang.ExceptionInInitializerError」

我的同事和我懷疑圖書館沒有被添加到我們已簽名的apk文件中。

我們通過將其添加到項目的構建路徑中,將我們的附加庫添加到了項目中。

此外,我們試圖添加到我們項目中的庫是ActionBarSherlock。

是否有我們的圖書館沒有被包含在我們已簽名的apk文件中的原因,因爲我們注意到我們標記的apk的文件大小是否比我們的未簽名的版本更小?

任何人都可以指出我們正確地簽署我們的apk文件,以便它包括我們添加到我們的構建路徑中的庫嗎?

+0

你可以檢查福爾摩斯庫添加爲Android的依賴,或者是在您的項目結構的lib文件夾? – VendettaDroid

+1

ActionBatSherlock是一個包含在構建路徑中的獨立項目。我剛剛檢查過,我們把它作爲一個android依賴項。 – user1529743

+0

可能是,您可能想要將生成並添加到android依賴項中的jar添加到lib目錄中,然後將該jar添加到構建路徑中。你可以試試嗎? – VendettaDroid

回答

0

你的具體構建過程不知道,我的建議是使用Maven爲你構建。這可能是因爲您的依賴關係僅用於您的調試版本,而不是您的發佈版本。我建議的另一件事是,在應用商店上放置東西之前,請使用Android調試橋(adb)將其手動安裝到設備上並檢查這些類型的錯誤。

4

我有完全相同的錯誤丟失android.support.v4 jar文件。迪吉是正確的,如果你看一下ActionBarSherlock網站它會告訴你添加以下你的ProGuard文件:

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

-keepattributes *Annotation* 
+0

感謝我的註釋行缺失 –