【发布时间】:2020-09-08 08:47:54
【问题描述】:
我有一个本机(带有 NDK C++ 代码的 Java)Android 应用程序,当通过 USB 连接时,我可以在 Android Studio 中以调试模式运行并设置断点等。
我正在调试一个 USB 主机应用程序 - 因此连接 USB 不是一种选择。所以我想在android studio中通过wifi以调试模式运行我的应用程序。我的构建配置将“debuggable”设置为 true。
我通过 wifi 连接如下:
adb kill-server
adb tcpip 5555
adb connect 192.168.0.xx:5555
这给了我通过 WiFi 的 logcat 输出 OK - 所以不是连接问题
但是,当我从 Android Studio 以调试模式运行我的应用时:
- 应用程序在设备上启动(因此必须有连接),并显示“Waiting For Debugger”。
- android studio 中的调试控制台列表:
05/21 17:18:47: Launching 'app' on Google Pixel 3a.
$ adb shell am start -n "com.myapplication.testapp/com.myapplication.testapp.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
Waiting for application to come online: com.myapplication.testapp | com.myapplication.testapp.test
Waiting for application to come online: com.myapplication.testapp | com.myapplication.testapp.test
Connecting to com.myapplication.testapp
Waiting for application to start debug server
Waiting for application to come online: com.myapplication.testapp | com.myapplication.testapp.test
Connecting to com.myapplication.testapp
Now Launching Native Debug Session
$ adb shell cat /data/local/tmp/lldb-server | run-as com.myapplication.testapp sh -c 'cat > /data/data/com.myapplication.testapp/lldb/bin/lldb-server && chmod 700 /data/data/com.myapplication.testapp/lldb/bin/lldb-server'
$ adb shell cat /data/local/tmp/start_lldb_server.sh | run-as com.myapplication.testapp sh -c 'cat > /data/data/com.myapplication.testapp/lldb/bin/start_lldb_server.sh && chmod 700 /data/data/com.myapplication.testapp/lldb/bin/start_lldb_server.sh'
Starting LLDB server: /data/data/com.myapplication.testapp/lldb/bin/start_lldb_server.sh /data/data/com.myapplication.testapp/lldb unix-abstract /com.myapplication.testapp-0 platform-1590077930063.sock "lldb process:gdb-remote packets"
- Android Studio 的底部有一个加载轮,带有消息 - 如下所示:
1. Starting LLDB server
2. Attaching to the app
3. Loaded module:LLModule(path=C:/...this file changes - it appears to be loading several files)
4. Resuming the app process
5. Loaded module:LLModule(path=C:/
- 此后,调试器控制台变为空白,应用程序开始正常运行。但是没有命中断点,我无法暂停应用程序,因为我通常可以通过 USB 连接。
我还尝试在 Android Studio 中使用“将调试器附加到 android 进程”选项 - 该进程出现在按下按钮时显示的列表中,但无法附加 - 一段时间后调试器控制台显示:
Connected to the target VM, address: 'localhost:8600', transport: 'socket'
Disconnected from the target VM, address: 'localhost:8600', transport: 'socket'
我想知道它是否与 localhost:8600 有关 - 这应该指向手机的 IP 地址吗?不过我找不到更改此选项的选项。
有什么想法可以尝试解决这个问题吗?拥有适当的调试功能将极大地帮助我现在的工作!
【问题讨论】:
标签: android android-ndk adb lldb android-debug