首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C/C++调试器不适用于Android 3.0.1

C/C++调试器不适用于Android 3.0.1
EN

Stack Overflow用户
提问于 2018-03-07 09:51:41
回答 4查看 3.7K关注 0票数 4

双调试(C/C++和Java)在AndroidStudio2.3.3中正常工作,minSdkVersion: 22,targetSdkVersion/编译程序minSdkVersion: 26。

当我更新到Android 3.0.1时,Java调试器是正常的,但C/C++调试器不能运行。我分别在Java和C/C++调试器之间进行测试,找出哪个调试器不工作。

问题是C/C++调试器无法在Android 3.0.1上运行。发生了如下错误:

com.jetbrains.cidr.execution.debugger.backend.lldb.LLDBDriverException:未能收到对握手包的答复com.jetbrains.cidr.execution.debugger.backend.lldb.LLDBDriver$ThrowIfNotValid.throwIfNeeded(LLDBDriver.java:143)在com.android.tools.ndk.run.lldb.AndroidLLDBDriver.connectPlatform(AndroidLLDBDriver.java:308) at com.android.tools.ndk.run.lldb.AndroidLLDBDriver.loadForLaunch(AndroidLLDBDriver.java:158) at com.android.tools上未能收到对握手分组的答复.ndk.run.lldb.AndroidLLDBDriver.loadForAttach(AndroidLLDBDriver.java:199) at com.android.tools.ndk.run.AndroidNativeAppDebugProcess.prepareTarget(AndroidNativeAppDebugProcess.java:98) at com.android.tools.ndk.run.AndroidNativeDebugProcess.doStart(AndroidNativeDebugProcess.java:113) at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$3.run(CidrDebugProcess.java:307) at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$MyCommandProcessor.consume(CidrDebugProcess.java:724) at com.jetbrains.cidr.execution.debugger.CidrDebugProcess$MyCommandProcessor.consume(CidrDebugProcess.java:714) at com.intellij.util.concurrency.QueueProcessor.lambda$null$0(QueueProcessor.java:106) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:223) at com.intellij.util.concurrency.QueueProcessor.lambda$wrappingProcessor$1(QueueProcessor.java:106) at com.intellij.util.concurrency.QueueProcessor.lambda$null$2(QueueProcessor.java:203) at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:223)在com.intellij.util.concurrency.QueueProcessor.lambda$startProcessing$3(QueueProcessor.java:203) at com.intellij.openapi.application.impl.ApplicationImpl$2.run(ApplicationImpl.java:334) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.utilconcurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)

如何解决这个问题?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2018-04-06 20:29:58

我对AndroidStudio3.1也有双重调试问题。尝试使用不同的模拟器SDK级别。我不能使用双调试与SDK 16模拟器。它只适用于我使用SDK 24仿真器。

票数 1
EN

Stack Overflow用户

发布于 2019-09-03 10:37:13

我使用了AVDPixel2XLAPI 22 - x86 - Google (可以根植),并得到了同样的问题“未能得到回复握手包”,与日志:

代码语言:javascript
复制
Launching 'setMeasurement() (1)' on Pixel 2 XL API 22 - x86 - Google API 
Running tests

$ adb shell am instrument -w -r   -e debug true -e \
    class 'com.my.package.MyClassTest#setMeasurement' \
    com.my.package.test/androidx.test.runner.AndroidJUnitRunner

Waiting for application to come online: com.my.package | com.my.package.test
...
Waiting for application to come online: com.my.package | com.my.package.test

Connecting to com.my.package.test
Now Launching Native Debug Session

$ adb shell cat /data/local/tmp/lldb-server \
    | sh -c 'cat > /data/data/com.my.package/lldb/bin/lldb-server
    \ && chmod 700 /data/data/com.my.package/lldb/bin/lldb-server'

$ adb shell cat /data/local/tmp/start_lldb_server.sh \
    | sh -c 'cat > /data/data/com.my.package/lldb/bin/start_lldb_server.sh \
    && chmod 700 /data/data/com.my.package/lldb/bin/start_lldb_server.sh'

Starting LLDB server:
failed to get reply to handshake packet

因此,我尝试重复这些命令(亚行外壳+本地运行的命令)--最后两个亚行shell命令失败了。检查电话文件目录结构,我发现:

  1. 在安装ldb-server的adb命令中,目标路径是错误的,它是"/data/data/com.my.package“,APK位于/data/app/com.my.Pack-2(后缀-2可能是动态创建的)
  2. 文件夹./lldb/bin/也不存在
  3. 由于没有在模拟器上复制/安装文件夹和文件,所以亚行命令明显失败。这就引出了我提交的另一个问题:"Android C++调试器启动默认忽略phone LLDB设置的关键问题“

对我有效的解决办法是创建(错误的?)安装之前的目标文件夹:

代码语言:javascript
复制
adb shell
mkdir -p /data/data/com.my.package/lldb/bin

这个问题被报告为Android C++调试器在LLDB设置过程中在电话上使用错误路径导致:无法获得对握手数据包的答复

票数 2
EN

Stack Overflow用户

发布于 2021-02-17 09:59:21

简单的卸载和安装帮助我。

代码语言:javascript
复制
adb uninstall com.your.package
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49148823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档