Как отлаживать приложение для Android, построенное с помощью maven
В настоящее время я пытаюсь отлаживать приложение Android на своем устройстве из eclipse.
Добавлено приложение. Я вижу его как в консоли, так и в eclipse. Консоль (Windows):
adb devices
List of devices attached
0019cca27f2e6e device
И затмение:
![enter image description here]()
Я могу запустить приложение без каких-либо проблем на обоих устройствах/симуляторах. Я просто делаю clean install
и android:deploy
, а затем android:run
и работает как шарм. Но я еще не могу понять, как его отладить.
Но когда я фактически запускаю приложение на устройстве (Samsung galaxy SII), я могу видеть только эти два процесса, выполняющие com.viber.voip
и com.viber.voip:keepAliveReceiver
Я не вижу свое приложение, даже если я его запустил. Однако на эмуляторе/эмуляторе я вижу, как работает приложение.
Я прошел через этот материал:
отладка запуска приложения с помощью плагина android maven
Как запустить приложение в командной строке с помощью Maven
http://code.google.com/p/maven-android-plugin/wiki/Debug
Не удается сломать код. Даже при попытке maven-exec-plugin
начать отладку, вызвав под ним script, вот этот плагин в pom:
<plugin>
<artifactId>exec-maven-plugin</artifactId>
<groupId>org.codehaus.mojo</groupId>
<configuration>
<executable>${basedir}/scripts/debug_app.cmd</executable>
</configuration>
</plugin>
Содержимое debug_app.cmd
:
adb shell am start -D android.intent.action.MAIN -n my.package.name/.HelloAndroidActivity
Когда я запускаю этот плагин, я получаю следующую ОШИБКУ:
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] pkg=android.intent.action.MAIN }
Error: Activity not started, unable to resolve Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=android.intent.action.MAIN }
Вот мой manifest.xml
, если это необходимо:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.READ_PHONE_STATE" >
</uses-permission>
<uses-permission android:name="android.permission.SET_DEBUG_APP" >
</uses-permission>
<!-- <uses-permission android:name="android.permission.INTERNET" /> -->
<application
android:icon="@drawable/icon"
android:label="@string/app_name" >
<activity android:name=".HelloAndroidActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DisplayMessageActivity" >
</activity>
</application>
Кто-нибудь может отладить устройство с помощью maven для создания приложения?
Обновление вопроса:
После добавления android:debuggable="true"
мое приложение появилось на вкладке устройств, но я столкнулся с другой проблемой (когда я нажимаю значок зеленого отладки ниже).
См. ниже:
![enter image description here]()
Я нашел это обходное решение (решение в дополнение к правильному ответу):
http://code.google.com/p/android/issues/detail?id=9932
И я принял ответ ниже. Может также пригодиться:
https://groups.google.com/forum/?fromgroups#!topic/android-developers/DftP5gYcwYI
Ответы
Ответ 1
Как я это делаю,
- Включить флаг отладки в файле AndroidManifest.xml.
- Разверните приложение на устройстве. Теперь вы должны увидеть идентификатор процесса вашего приложения в менеджере отладки eclipse.
- Теперь настройте конфигурацию запуска/отладки удаленного приложения java в меню запуска/конфигурации eclipse.
- Введите все сведения о конфигурации. Номер порта будет третьим столбцом от вашего прикрепления изображения.
- После запуска приложения на устройстве "запустите конфигурацию удаленных java-приложений" в eclipse.
- Теперь ваше приложение должно ударить по точкам останова, если они есть.
Ответ 2
Добавить
android:debuggable="true"
чтобы продемонстрировать и включить "USB Debugging" на вашем устройстве.
http://developer.android.com/tools/device.html#setting-up