我在控制台中看到调试语句,但调试器不会在任何断点上停止。我尝试清除所有断点并重新添加它们。不确定这是怎么发生的,但确实如此。
答案 0 :(得分:25)
如果您使用的是Android工作室,请点击debug app
代替run app
:
答案 1 :(得分:9)
您是否在AndroidManifest中设置了debuggable标志? 如果您错过了,请在应用程序标记中添加android:debuggable =“true”。 它最终看起来应该是这样的:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true">
答案 2 :(得分:6)
答案 3 :(得分:6)
在我的情况下,点击&#34;将调试程序附加到Android进程&#34;
它将显示一个窗口,表示&#34;选择流程&#34; 选择您正在使用的设备,然后选择要调试的项目。它有效。
有时,第一次打开调试器时,调试器需要重新连接到设备。
答案 4 :(得分:4)
你做过“Debug As - &gt; Android Application”而不是“Run As”吗?
只有当你执行“Debug As”时,eclipse才会在断点处停止。
答案 5 :(得分:2)
根据this answer,在build.gradle
内,为您的应用模块,为构建变体禁用minifyEnable并将其更改为false。然后,应该是:
minifyEnabled false
否则,当您将鼠标悬停在断点标记上时,您会看到Line number not available in class xxxx
,并且它们会被标记为十字形
答案 6 :(得分:1)
答案 7 :(得分:0)
我遇到了同样的问题,并通过增加调试器超时值来解决它。 模拟器作为我的开发盒上的狗很慢,这是阻止调试器捕获和停止断点的原因。 我将超时值分别从3000更改为10000和20000更改为60000,现在一切都很好。
诉P>
答案 8 :(得分:0)
就我而言,该应用使用AndroidManifest中的android:process=":service"
创建了一个具有不同进程的服务。因此,我在调试器自动附加到主应用程序进程的同时在服务进程代码中设置了断点。对我来说很愚蠢,但这可能会帮助别人。
您使用Run > Attach Debugger To Android Process
附加到服务流程,然后选择服务流程。如果无法及时附加,您可能需要在服务过程代码中添加android.os.Debug.waitForDebugger();
。
据我所知,在运行之前,无法自动告诉Android Studio或IntelliJ附加到其他进程。
答案 9 :(得分:0)
如果您在build type
支票中添加了一些build.gradle
以拥有debuggable true
buildTypes {
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
答案 10 :(得分:0)
我遇到了这个问题,我清理了 build.gradle 的 buildTypes 部分 并尝试年龄,所以它对我有用。