Android Studio – сбой приложения на AddThis.jar – сообщение «Источники не найдены»

У меня есть проект, использующий AddThis SDK. Я добавил AddThis.jar в качестве библиотеки в свой проект в Android Studio.

Когда я нажимаю кнопку «Опубликовать в Facebook», приложение вылетает с этим журналом:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apploi/com.addthis.ui.activities.ATActivityGroup}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apploi/com.addthis.ui.activities.ATShareActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apploi/com.addthis.ui.activities.ATShareActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195)
            at android.app.ActivityThread.startActivityNow(ActivityThread.java:2035)
            at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
            at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
            at com.addthis.ui.activities.ATActivityGroup.showNextView(ATActivityGroup.java:167)
            at com.addthis.ui.activities.ATActivityGroup.loadViews(ATActivityGroup.java:99)
            at com.addthis.ui.activities.ATActivityGroup.onCreate(ATActivityGroup.java:78)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
     Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x0
            at android.content.res.Resources.getValue(Resources.java:1123)
            at android.content.res.Resources.loadXmlResourceParser(Resources.java:2309)
            at android.content.res.Resources.getLayout(Resources.java:939)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:395)
            at android.view.LayoutInflater.inflate(LayoutInflater.java:353)
            at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:290)
            at android.app.Activity.setContentView(Activity.java:1929)
            at com.addthis.ui.activities.ATShareActivity.onCreate(ATShareActivity.java:66)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.startActivityNow(ActivityThread.java:2035)
            at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
            at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
            at com.addthis.ui.activities.ATActivityGroup.showNextView(ATActivityGroup.java:167)
            at com.addthis.ui.activities.ATActivityGroup.loadViews(ATActivityGroup.java:99)
            at com.addthis.ui.activities.ATActivityGroup.onCreate(ATActivityGroup.java:78)
            at android.app.Activity.performCreate(Activity.java:5231)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
            at android.app.ActivityThread.access$800(ActivityThread.java:135)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:136)
            at android.app.ActivityThread.main(ActivityThread.java:5017)
            at java.lang.reflect.Method.invokeNative(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:515)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
            at dalvik.system.NativeStart.main(Native Method)
Connection reset by peer

Насколько я могу судить, эта строка говорит о том, что у ATShareActivity проблемы. java.lang.RuntimeException: Unable to start activity ComponentInfo{com.apploi/com.addthis.ui.activities.ATShareActivity}: android.content.res.Resources$NotFoundException: Resource ID #0x0

Когда я перехожу в AddThis.jar и открываю файл ATShareActivity (или любой другой файл внутри файла jar), в верхней части экрана появляется сообщение «Источники не найдены» с активной ссылкой под названием Attach Sources...

Я открываю ссылку Attach Sources..., и она позволяет мне выбрать каталог, но я не знаю, что мне здесь делать.

Любые идеи по этому поводу будут очень признательны.


person Chris    schedule 21.09.2014    source источник
comment
Судя по документации, AddThis SDK был написан кем-то, у кого не было достаточного опыта разработки под Android. При этом это проект библиотеки Android, а не JAR, поэтому вам нужно добавить его как проект библиотеки Android.   -  person CommonsWare    schedule 22.09.2014
comment
Из документации: AddThis Android SDK поставляется в виде проекта библиотеки, поэтому вы можете добавить его в любой проект Android в качестве библиотеки.   -  person MrEngineer13    schedule 22.09.2014


Ответы (1)


Спасибо за советы. Вот что в итоге заработало:

1) Преобразование AddThis в Gradle

File > Import Project... для перехода AddThisSDK в проект Gradle. Это создало новый проект, который я назвал AddThisGradle

1B) Если у вас уже установлен Facebook SDK

Открыл Терминал и перешел в новый каталог AddThisGradle к AddThisGradle/app/libs

Использована команда zip -d addthis0.0.8.jar com/facebook/* в Терминале для удаления файлов Facebook из addthis0.0.8.jar

Вернулся к Android Studio, проверил, исчезла ли директория Facebook с AddThisGradle

Вернулся к моему основному проекту в Android Studio

2) Добавьте AddThis в свой проект

Выбрано File > Project Structure в моем основном проекте в Android Studio

Нажал + в левом верхнем углу экрана структуры проекта.

Появится экран New Module

Выбрано Import Existing Project на экране New Module

Выбран AddThisGradle в качестве source directory

Установил флажок import

Изменил module name на :addthis

Нажмите кнопку Finish

Дождитесь повторной синхронизации Gradle

3) Добавить зависимость

Назад к экрану Project Structure

Выберите app в левом столбце экрана Project Structure.

Выберите вкладку Dependencies

Нажмите кнопку + в нижней части экрана вкладки Dependencies.

Выберите + > 3 Module Dependency

Появится экран Choose Module

Выберите модуль :addthis

Дождитесь повторной синхронизации Gradle

4) Продолжайте пробовать

На данный момент все казалось хорошим, за исключением того, что когда я пытался запустить приложение, я получал сообщение об ошибке Execution failed for task ':app:dexDebug’. Я использовал первое предложение из этого вопроса, чтобы исправить свою проблему: project">Выполнение Gradle не удалось выполнить для задачи ':app:dexDebug' с новым проектом Android Studio

person Chris    schedule 22.09.2014