我正在 Android Studio 中制作应用程序,现在尝试通过 adb 对其进行调试。当我单击 Android 一词和底部栏上的徽标时,logcat 会出现并识别我的设备。然后我看到这个:
我需要对我的应用程序做什么才能使其“可调试”?
仅供参考之前在 Eclipse 中开发此应用程序,并且 adb 运行良好。
我正在 Android Studio 中制作应用程序,现在尝试通过 adb 对其进行调试。当我单击 Android 一词和底部栏上的徽标时,logcat 会出现并识别我的设备。然后我看到这个:
我需要对我的应用程序做什么才能使其“可调试”?
仅供参考之前在 Eclipse 中开发此应用程序,并且 adb 运行良好。
我在执行以下步骤后解决了这个问题:
转到工具==>android==>禁用 ADB 集成并再次启用它。
之后,从设备上拔下 USB 并重新插入。
最后按 shift + F9
工具栏上有一个调试图标。它看起来像一个小“错误”,位于运行图标(看起来像一个播放按钮)旁边。尝试使用它启动应用程序。
编辑:使用带有 Gradle 的 Android Studio 时,不推荐使用以下内容。
AndroidManifest.xml文件中还有一个调试标志。它位于应用程序标签下,应设置为“true”,如下所示:
<application android:debuggable="true">
</application>
另一件要小心的事情(我这样做是为了知道,呃)。确保不要启用 Proguard 进行调试!
即使在 Android Studio 中多次调试后,我也随机遇到了这个问题。有一天,调试器无法附加。我只需要退出 Android Studio 并重新打开它,调试器就会重新开始工作。
这对我有用:
打开外壳,写:
adb kill-server
adb start-server
如果您的应用程序曾经是可调试的,但突然间不再可调试。这是我的解决方案
USB debug
手机中的开关。确保您已启用 ADB 集成。
在菜单中:工具 -> Android -> 启用 ADB 集成 (v1.0)
您无法在 Android Studio 中调试应用程序的一种情况是您选择了“发布”构建变体。发生在我身上 - Gradle 构建了应用程序的发布版本(不可调试),然后 Android Studio 在尝试连接调试器时失败。
这偶尔会发生在我身上,我还没有弄清楚为什么。没有一个已经发布的解决方案对我有用。唯一对我有用的是:
在我的情况下,在任何行附近都会出现一个带有十字和红线的红色圆圈,并带有一条消息:“No executable code found at line ...”就像在Android studio gradle breakpoint No executable code found at line中一样。
更新后出现问题build.gradle
。我们包含了 Kotlin 支持,因此许多方法超过了 64K。问题线:
buildTypes {
debug {
minifyEnabled true
将它们更改为:
buildTypes {
debug {
minifyEnabled false
debuggable true
然后使用“同步项目与 Gradle 文件”按钮同步 gradle。如果在重新启动您的应用程序后您会收到错误消息:“错误:.dex 文件中的方法引用数不能超过 64K。在https://developer.android.com/tools/building/了解如何解决此问题multidex.html ",然后,像在.dex 文件中的方法引用数不能超过 64k API 17中添加以下行build.gradle
:
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.2'
}
更新
根据https://developer.android.com/studio/build/multidex.html执行以下操作以启用 Android 5.0 以下的 multidex 支持。否则它不会在这些设备中启动。
打开AndroidManifest
并找到标签<application>
。Nearandroid:name=
是对 Application 类的引用。开这堂课。扩展应用程序类MultiDexApplication
:
public class MyApplication extends MultiDexApplication { ... }
如果没有设置应用程序类,请这样写:
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
如果启用
<application android:debuggable="true">
</application>
在应用程序manifest.xml中确保在生成最终签名的 apk 时禁用它,因为这可能成为攻击者的安全漏洞。仅当只有一个应用程序不显示日志时才使用它。但是,在考虑该选项之前,请尝试以下操作:
导航到 android studio 中的工具
Tools==>android==>disable adb integration and again enable it
还要确保您没有使用其他可能也在使用 ADB 的应用程序,例如 Eclipse。
我测试了所有方法,但没有一个有效!
最后不得不更改 adb 端口并且它起作用了。首先杀死 adb 服务器,如下所示:
adb kill-server
然后使用另一个端口重新启动它
adb -P 5038 start-server
我使用以下命令进行了干净的构建..令人惊讶的工作。
sh gradlew 清洁构建
希望有人得到帮助!
确保在设备或模拟器上启用开发者模式和 USB 调试。(设置新的时容易忘记。)
您还应该激活 Tools->Android->Enable ADB Integration。
在我的情况下,必须通过完全清除文本文件proguard-rules.pro
并minifyEnabled false
在 build.gradle 文件中删除 debug Build Type 中的 proguard
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
从 android studio 重新启动 adb 服务器:工具 -> “ Troubleshhot 设备连接”
这解决了我的问题。从设备上卸载应用程序并通过 Android Studio 再次运行它。
对我来说,它发生在我使用 Proguard 时,所以通过尝试所有解决方案,我清理了我的项目并按下了 Android Studio 上的调试按钮,它开始调试
<application android:debuggable="true">
</application>
上面的代码不再是解决方案。您需要在 build.gradle 文件中启用调试。如果您有不同的 buildTypes,请确保您在其中一种构建类型中设置“debuggable true”。这是我的一个项目的示例代码。
buildTypes {
debug {
debuggable true
}
release {
debuggable false
}
}
**我已经从我的 gradle 文件中删除了 buildTypes 中与此问题无关的其他行。
还要确保在进行调试时在 android studio 中选择正确的构建变体。
多年来,我多次访问该主题,并且总是有不同的回应对我有所帮助。这次我发现是我的 USB 集线器阻止了调试器正常工作。听起来很奇怪,我没有通过 USB 集线器将手机连接到我的电脑,而是将它直接连接到我的 Mac 并开始调试。
这里有一些可能会引起注意的 oops:很容易意外地为 logcat 输出窗口(带有放大镜的文本框)输入了一个过滤器而忘记了它。可能会过滤掉所有输出并使其看起来像什么都没有的东西。
就我而言,我遇到了同样的问题,因为我尝试调试签名的 apk。在我的 gradle 配置中,我制作了不同的构建变体,并尝试使用生产 keystore.jks 调试发布构建
在 Android Studio 3.2.1 中对我有用的是什么
曾是:
RUN -> Attach debugger to Android Process --> com.my app
将您的项目与 Gradle 文件同步,这将有所帮助。
我有同样的问题,我通过谷歌尝试了几乎所有类型的解决方案。但我无法解决。最后,我找到了解决方案。这是 Android Studio 错误。
不要点击Run
(Alt + F10)
- 只需点击Debug
(Shift + F9)
。
然后 Android Studio 将向您显示带有 ADB 的警告消息,然后单击“确定”。
您可以在 logcat 控制台中看到登录信息。并且包将显示在 DDMS(设备)上。