IllegalAccessError только на экспортированных подписанных APK

1

У меня настоящие проблемы. У меня есть приложение, которое использует библиотеку 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 вручную, но я получаю ту же ошибку, что и выше.

Любая помощь была бы чрезвычайно оценена.

  • 0
    Попробуйте загрузить последнюю версию SDK Google Analytics для Android и повторите все действия, чтобы проверить, работает ли он.
  • 0
    Я согласен. получите еще один SDK и пересоберите свое приложение. Последний шаг в упаковке вашего приложения - zipalign вашего подписанного apk. Это уменьшит размер в зависимости от содержимого apk. Он не будет соответствовать размеру apk в вашем bin / dir
Теги:
release

2 ответа

2

У меня была то, что, похоже, было той же ошибкой, но исправлено, добавив это в мой proguard.cfg:

-keep class com.google.android.apps.analytics.PipelinedRequester$Callbacks
0

Хотя это старый вопрос, это может помочь кому-то в какой-то момент. У меня было много проблем с этим, а решения для экспортных пакетов довольно случайны.

Мое общее решение - отключить автоматическую сборку, очистить ее, а затем вручную построить проекты библиотеки.

Например

  • В меню Проект
  • Снимите флажок Создать автоматически
  • Затем Проект > Очистить...
  • В этом окне снимите флажок Начать сборку сразу
  • Выберите Очистить все проекты и нажмите ОК
  • Если у вас нет других включенных в проект проектов, и это только один, экспортируйте свой проект в качестве подписанного APK.

Если у вас есть какие-либо проекты библиотеки (Sherlock ActionBar, HoloEverywhere и т.д.)

  • Выберите каждый проект отдельно и выполните Проект > Проект сборки (НЕ создавайте все).
    • Это создаст ТОЛЬКО эту одну библиотеку
    • Сделайте это для любых проектов библиотек, которые вы включили.
  • Нажмите "Сейчас", экспортируйте проект как подписанный APK.

Это обычно работает для меня и останавливает много необъяснимых проблем с экспортом.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню