У меня настоящие проблемы. У меня есть приложение, которое использует библиотеку Google Analytics для Android и отлично работает, когда я запускаю приложение на своем устройстве из eclipse.
Когда проект был готов к выпуску, я загрузил обновление для своего приложения на 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)
Я понятия не имею, почему это происходит. Все, что я могу сказать, это то, что APK в моем каталоге project/bin/примерно на 0,1 Мб больше, чем якобы подписанный и экспортированный APK. Я попытался установить подписанный и экспортированный APK на свое устройство через ADB вручную, но я получаю ту же ошибку, что и выше.
Любая помощь была бы чрезвычайно оценена.
У меня была то, что, похоже, было той же ошибкой, но исправлено, добавив это в мой proguard.cfg:
-keep class com.google.android.apps.analytics.PipelinedRequester$Callbacks
Хотя это старый вопрос, это может помочь кому-то в какой-то момент. У меня было много проблем с этим, а решения для экспортных пакетов довольно случайны.
Мое общее решение - отключить автоматическую сборку, очистить ее, а затем вручную построить проекты библиотеки.
Например
Если у вас есть какие-либо проекты библиотеки (Sherlock ActionBar, HoloEverywhere и т.д.)
Это обычно работает для меня и останавливает много необъяснимых проблем с экспортом.