如何调试apk签名发布?

Adi*_*ain 101 android google-play

我有一个apk我已经签名并上传到Android Market,并安装在我的手机上.我想在我的手机上运行时调试此版本apk(通过Eclipse).我以前做过这个(并记住它是使用Android开发工具之一;也许是Dalvik Debug Monitor)但遗憾的是它不记得如何做到并且无法在线找到任何文章.有谁知道如何做到这一点?

注意:android:debuggable="true"在清单中设置并在手机上启用了USB调试.

Man*_*era 112

我知道这是一个老问题,但未来的参考.在带有Gradle的Android Studio中:

buildTypes {
    release {
        debuggable true
        runProguard true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
}
Run Code Online (Sandbox Code Playgroud)

这条线debuggable true对我来说很有把戏.

更新:

从gradle 1.0开始,它minifyEnabled代替了runProguard.看看这里

  • 请注意,从gradle 1.0开始,它是**minifyEnabled**而不是**runProguard** - 请参阅http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0 (5认同)

Sam*_*zor 68

确保android:debuggable="true"application清单文件的标记中设置,然后:

  1. 将手机插入计算机并在手机上启用USB调试
  2. 打开eclipse和包含应用程序代码的工作区
  3. 在Eclipse中,转到Window-> Show View-> Devices
  4. 查看现在应该可见的"设备"视图,您应该会看到列出的设备
  5. 如果未列出您的设备,则必须先跟踪手机的ADB驱动程序,然后再继续操作
  6. 如果要逐步执行代码,请在应用中的某个位置设置断点
  7. 在手机上打开应用程序
  8. 在"设备"视图中,展开手机的条目(如果尚未展开),并查找应用的包名称.
  9. 单击软件包名称,在Devices视图的右上角,您会看到一个绿色错误以及许多其他小按钮.单击绿色错误.
  10. 您现在应该连接/调试您的应用程序.

  • 得到它了!我在`manifest`标签中放了`android:debuggable ="true"属性而不是清单中的`application`标签!我的不好:(非常感谢Sam_D对你的指导.如果没有你,不会做到这一点,或者充其量只会花费很长时间! (2认同)
  • 这个答案已经过时了。您应该更新“build.gradle”,而不是“androidManifest.xml”。查看其他答案。 (2认同)

san*_*one 38

除了Manuel的方式,你仍然可以使用Manifest.

在Android Studio stable中,您必须applicationAndroidManifest文件中添加以下2行:

    android:debuggable="true"
    tools:ignore="HardcodedDebugMode"
Run Code Online (Sandbox Code Playgroud)

第一个将启用已签名APK的调试,第二个将阻止编译时错误.

在此之后,您可以通过"将调试器附加到Android进程"按钮附加到该进程.

  • 我收到“[致命错误] :7:203:与元素类型“应用程序”关联的属性“工具:忽略”的前缀“工具”未绑定。” tools:ignore="HardcodedDebugMode" 在这里是合法的配置吗? (2认同)

Shy*_*dda 8

我尝试了以下它,它的工作原理:

release {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
Run Code Online (Sandbox Code Playgroud)


Ram*_*ula 7

将以下内容添加到您的应用程序build.gradle中,然后选择指定的发布版本变体并运行

signingConfigs {
        config {
            keyAlias 'keyalias'
            keyPassword 'keypwd'
            storeFile file('<<KEYSTORE-PATH>>.keystore')
            storePassword 'pwd'
        }
    }
    buildTypes {
      release {
          debuggable true
          signingConfig signingConfigs.config
          proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }
    }
Run Code Online (Sandbox Code Playgroud)


Muh*_*uru 7

如果您决定调试已经在市场上但未指定为可调试apk,并且您不想再次发布它。所以请按照以下步骤操作;

  1. 使用ApkTool反编译 Apk (例如apktool d <APK_PATH>
  2. 从反编译文件中打开 AndroidManifest.xml
  3. android:debuggable="true"application标签中设置
  4. 使用 ApkTool 编译修改后的源代码(例如apktool b <MODIFIED_PATH>
  5. 可调试的 apk 准备好(未签名意味着无法发布商店)。您可以根据需要进行调试。