Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/202.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在Android Studio中调试应用程序_Android_Debugging_Adb_Android Studio - Fatal编程技术网

无法在Android Studio中调试应用程序

无法在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一起使用时,不推荐使用以下内容

我正在Android Studio中制作一个应用程序,现在正试图通过adb进行调试。当我点击Android这个词和底部栏上的徽标时,logcat就会出现并识别出我的设备。然后我看到:

我需要对我的应用程序做什么才能使其“可调试”


FYI以前在Eclipse中开发过此应用程序,adb工作正常。

工具栏上有一个调试图标。它看起来像一个小“bug”,位于Run图标(看起来像一个播放按钮)的旁边。尝试用它启动应用程序

编辑:当将Android Studio与Gradle一起使用时,不推荐使用以下内容

文件中还有一个调试标志。它位于应用程序标签下,应设置为“true”,如下所示:

<application android:debuggable="true">
</application>


在Android Studio中无法调试应用程序的一种情况是,您选择了“发布”版本变体。发生在我身上-Gradle构建了应用程序的发布版本(不可调试),然后Android Studio在尝试连接调试器时失败。

即使在Android Studio中调试多次,我也随机遇到了这个问题。有一天,调试器无法连接。我不得不退出Android Studio并重新打开它,调试器又开始工作了。

这种情况偶尔会发生在我身上,我还没有弄清楚原因。已经发布的解决方案中没有一个对我有效。对我来说唯一有效的方法是:

  • 从设备卸载应用程序
  • 清洁项目。“生成->清理项目。”
  • 重建并安装
  • 这对我很有用:

  • 关闭Android Studio
  • 打开shell,然后编写:

    adb kill服务器

    adb启动服务器


  • 还有一件事要小心(我这样做是为了我知道,duh)。确保不启用Proguard进行调试

    确保已启用ADB集成

    在菜单中:工具->安卓->启用ADB集成
    (v1.0)

    我在执行以下步骤后解决了此问题:

    转到Tools==>android==>禁用ADB集成并再次启用

    之后,从设备上拔下USB并再次插入


    最后,如果应用程序以前是可调试的,请按shift+F9,然后突然间它就不可调试了。下面是我的解决方案

  • 禁用和启用手机中的USB调试开关
  • 卸载应用程序
  • 单击在Android Studio中运行

  • 另外,请确保您没有使用其他可能也在使用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
        }
    }