无法在Android Studio中调试应用程序
我正在Android Studio中制作一个应用程序,现在正试图通过adb进行调试。当我点击Android这个词和底部栏上的徽标时,logcat就会出现并识别出我的设备。然后我看到: 我需要对我的应用程序做什么才能使其“可调试”无法在Android Studio中调试应用程序,android,debugging,adb,android-studio,Android,Debugging,Adb,Android Studio,我正在Android Studio中制作一个应用程序,现在正试图通过adb进行调试。当我点击Android这个词和底部栏上的徽标时,logcat就会出现并识别出我的设备。然后我看到: 我需要对我的应用程序做什么才能使其“可调试” FYI以前在Eclipse中开发过此应用程序,adb工作正常。工具栏上有一个调试图标。它看起来像一个小“bug”,位于Run图标(看起来像一个播放按钮)的旁边。尝试用它启动应用程序 编辑:当将Android Studio与Gradle一起使用时,不推荐使用以下内容
FYI以前在Eclipse中开发过此应用程序,adb工作正常。工具栏上有一个调试图标。它看起来像一个小“bug”,位于Run图标(看起来像一个播放按钮)的旁边。尝试用它启动应用程序 编辑:当将Android Studio与Gradle一起使用时,不推荐使用以下内容 文件中还有一个调试标志。它位于应用程序标签下,应设置为“true”,如下所示:
<application android:debuggable="true">
</application>
在Android Studio中无法调试应用程序的一种情况是,您选择了“发布”版本变体。发生在我身上-Gradle构建了应用程序的发布版本(不可调试),然后Android Studio在尝试连接调试器时失败。即使在Android Studio中调试多次,我也随机遇到了这个问题。有一天,调试器无法连接。我不得不退出Android Studio并重新打开它,调试器又开始工作了。这种情况偶尔会发生在我身上,我还没有弄清楚原因。已经发布的解决方案中没有一个对我有效。对我来说唯一有效的方法是:
adb kill服务器
adb启动服务器
还有一件事要小心(我这样做是为了我知道,duh)。确保不启用Proguard进行调试 确保已启用ADB集成 在菜单中:工具->安卓->启用ADB集成
(v1.0)我在执行以下步骤后解决了此问题: 转到Tools==>android==>禁用ADB集成并再次启用 之后,从设备上拔下USB并再次插入
最后,如果应用程序以前是可调试的,请按shift+F9,然后突然间它就不可调试了。下面是我的解决方案
另外,请确保您没有使用其他可能也在使用ADB的应用程序,例如Eclipse。检查是否在调试按钮旁边的下拉菜单中选择了app project。有时Android Studio只是重置此选择
如果启用
<application android:debuggable="true">
</application>
Tools==>android==>disable adb integration and again enable it
在Android Studio中,进入构建->选择构建变体
现在尝试调试。谢谢请确保在设备或模拟器上启用开发人员模式和USB调试。(设置新进程时很容易忘记。)您还应该让工具->Android->启用ADB集成处于活动状态。在清单文件中设置自定义“Android:进程”时,应使用“将调试器附加到Android进程”图标
在我的情况下,我应该选择合适的进程,并在“等待调试器”对话框出现后单击OK按钮。
这解决了我的问题。
从设备上卸载应用程序,然后通过Android studio再次运行它。这里有一个小问题可能会抓住一些:很容易在logcat输出窗口(带有放大镜的文本框)中意外键入一个过滤器,然后忘记它。可能会过滤掉所有输出并使其看起来像什么都不存在。在我的例子中,我遇到了同样的问题,因为我尝试调试签名的apk。在我的gradle配置中,我制作了不同的版本变体,并尝试使用生产密钥库调试发布版本。jks我测试了所有方法,但没有一种有效
最后不得不改变亚洲开发银行的港口,它成功了。首先杀死adb服务器,如下所示:
adb kill-server
然后使用另一个端口重新启动它
adb -P 5038 start-server
我使用下面的命令进行了清理构建。。出人意料的成功
sh gradlew洁净型
希望有人能得到帮助 在我的例子中,在任何一行附近都会出现一个红色圆圈,上面有一个十字和一条红色的线,上面有一条消息:“第行找不到可执行代码…”如中所示
更新build.gradle
后出现问题。我们包括了Kotlin支持,因此许多方法超过了64K。问题线:
buildTypes {
debug {
minifyEnabled true
将其更改为:
buildTypes {
debug {
minifyEnabled false
debuggable true
然后用“用渐变文件同步项目”按钮同步渐变。如果重新启动应用程序后,您将收到一个错误:“错误:一个.dex文件中的方法引用数不能超过64K。请在中了解如何解决此问题”,然后,如中所示,将以下行添加到build.gradle
:
android {
defaultConfig {
...
// Enabling multidex support.
multiDexEnabled true
}
...
}
dependencies {
implementation 'com.android.support:multidex:1.0.2'
}
更新
根据需要,请执行以下操作以启用Android 5.0以下的multidex支持。否则它将无法在这些设备中启动
打开AndroidManifest
并查找标签
。android:name=
附近是对应用程序类的引用。打开这门课。使用MultiDexApplication
扩展应用程序类,以便:
public class MyApplication extends MultiDexApplication { ... }
如果未设置应用程序类,请这样写:
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
...
对我来说,这是在我使用Proguard时发生的,所以通过尝试所有的解决方案,我清理了我的项目,并按下了Android Studio上的调试按钮,它开始调试,必须通过完全清除文本文件proguard rules.pro
并在Build.gradle文件中设置minifyEnabled false来删除调试生成类型中的proguard
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
**我已经从我的gradle文件中删除了BuildType中与这个问题无关的其他行
在执行此操作时,还要确保在android studio中选择了正确的构建变量
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
<application android:debuggable="true">
</application>
buildTypes {
debug {
debuggable true
}
release {
debuggable false
}
}