Не удается отладить APK: «Чтобы установить точки останова для отладки, прикрепите исходные файлы Java» - PullRequest
4 голосов
/ 09 мая 2019

У меня есть APK, равный debuggable="true" (согласно AndroidManifest), то есть я могу его отладить, и это то, что я хочу сделать.

Я использовал Android Studio: Файл -> Профиль или Отладка APK , чтобы загрузить apk (app.apk).

Когда я пытаюсь отладить его (Shift + F9), он пишет мне:

Разобранный файл classes.dex. Чтобы установить точки останова для отладки, пожалуйста, приложите исходные файлы Java

Я использовал jadx , чтобы декомпилировать APK в исходный код Java, выполнив:

"c:\tmp\jadx-0.8.0\bin\jadx.bat" -d java_source app.apk  

Теперь у меня внутри каталога java_source две директории:
- ресурсы
- источники

Внутри папки sources есть файлы java.
Как я могу прикрепить их к проекту Android Studio, когда он запрашивает сообщение?
Просто открыть его как новый проект?

1 Ответ

1 голос
/ 09 мая 2019

Похоже, что нужный ответ доступен в документации для Android (https://developer.android.com/studio/debug/apk-debugger#attach_java):

По умолчанию Android Studio извлекает код Java из вашего APK и сохраняет их как файлы .smali. Для отладкиВ коде Java с использованием точек останова необходимо указать в среде IDE исходные файлы .java, соответствующие файлам .smali, которые вы хотите отлаживать.

Чтобы присоединить исходные коды Java, выполните следующие действия:

Дважды щелкните файл .smali на панели «Проект» (используйте представление Android). После открытия файла редактор отображает предупреждающий баннер с просьбой выбрать источники Java, аналогично показанному на рисунке 1. Нажмите «Присоединить источники Java из».баннер в верхней части окна редактора. Перейдите в каталог с исходными файлами приложения и нажмите «Открыть».

В окне «Проект» среда IDE заменяет файлы .smali на соответствующие им файлы .java - среда IDE.также автоматически включает внутренние классы. Теперь вы можете добавлять точки останова и отлаживать приложение, как обычно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...