我在這裏遇到了麻煩。我有一個應用程序,它使用Google Analytics for Android lib,並且在我的設備上從eclipse運行應用程序時工作良好。僅在導出簽名的APK上出現IllegalAccessError
當項目準備發佈時,我上傳了我的應用更新到Android Market。幸運的是,我決定檢查應用程序的工作,所以在卸載我自己的應用程序版本後,我從Android Market下載了我剛剛上傳的新版本。在打開應用程序時,應用程序崩潰,出現以下錯誤:
java.lang.IllegalAccessError: tried to access method com.google.android.apps.analytics.g$a.<init>:(Lcom/google/android/apps/analytics/a$a;Lcom/google/android/apps/analytics/g;Ljava/lang/String;Ljava/lang/String;)V from class com.google.android.apps.analytics.c
at com.google.android.apps.analytics.c.<init>(Unknown Source)
at com.google.android.apps.analytics.c.<init>(Unknown Source)
at com.google.android.apps.analytics.c.<init>(Unknown Source)
at com.google.android.apps.analytics.b.a(Unknown Source)
at com.google.android.apps.analytics.f.a(Unknown Source)
at com.me.myapp.onCreate(Unknown Source)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:3683)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
我不知道爲什麼會發生這種情況。我只能說我項目的/ bin /目錄中的APK比假定簽名和導出的APK大0.1 Mb。我曾嘗試通過ADB手動將已簽名和已導出的APK安裝到我的設備上,但是我得到的錯誤與上面相同。
任何幫助將非常感激。
嘗試重新下載適用於Android的最新Google AnalyticsSDK,然後重做所有步驟,看看它是否有效。 – SteD 2011-03-22 01:41:10
我同意。獲得另一個SDK並重建你的應用程序。打包你的應用程序的最後一步是zipalign你簽名的apk。這將根據apk內容減小尺寸。它不符合你的bin/dir中apk的大小 – apesa 2011-03-22 03:23:33