在Android Studio中的Release Build上启用LogCat

Chr*_*sco 47 android logcat

默认情况下,当我更改Build Variantsrelease我没有在logcat上获取任何日志,但我确实需要阅读我的应用程序的发布日志,我该如何启用它?

reV*_*rse 60

android:debuggable="true"<application>标记内的Manifest中添加(默认为false).

来自文档:

android:debuggable
是否可以调试应用程序,即使在用户模式下在设备上运行 - 如果可以,则为"true",否则为"false".

分别

您可以通过从清单文件中的标记中删除android:debuggable属性来禁用调试,或者通过在清单文件中将android:debuggable属性设置为false来禁用调试.

编辑

您可能需要build.gradle在android {...}标记内的文件中添加以下内容:

lintOptions {
   checkReleaseBuilds false
}
Run Code Online (Sandbox Code Playgroud)

并且作为旁注:在设备上,无论您的应用程序的debuggable是设置为false还是true,都会始终写入日志.但是通过LogCat,只有在debuggable设置为true时才有可能.(刚试过这个)

  • 你有点对,但`debuggable`意味着Android Studio中的Android Monitor可以附加到当前运行的APK.这使Logcat能够像调试版本一样显示日志语句.除此之外:这个答案现在有点超过三年了 - 所以很可能你应该切换到相应的`build.gradle`属性``debuggable`,它可以根据buildType设置. (3认同)
  • 我不认为这个答案是正确的。至少,它引用的文档没有说打开 `android:debuggable` 将打开日志记录。事实上,https://developer.android.com/studio/publish/preparing.html#publishing-configure 很清楚关闭日志记录和关闭调试是两件不同的事情。OP询问如何打开日志记录。 (2认同)

Mor*_*ard 29

我不喜欢其他解决方案,因为那时你没有测试应用程序是如何部署的.

更好的解决方案是打开Android设备监视器,即使在使用debuggable = false的发布配置中也可以看到日志.

在这里找到它:

工具 - > Android - > Android设备监视器

  • 你不会以这种方式看到Log.v和Log.d (5认同)
  • http://joxi.ru/eAOl5EWu8Ll5ro来自市场的应用程序,清单中未提及debuggable(因此,它是假的).没有 - 在AS LogCat或DeviceMonitor中 (3认同)

Coo*_*ind 13

你应该添加

android {
    buildTypes {
        release {
            debuggable true
Run Code Online (Sandbox Code Playgroud)

在这种情况下,您可以使用Log.System.out.println查看日志.

如果您无法运行发布版本(app已禁用),并显示错误:"apk未签名.请使用"项目结构"对话框配置所选flavor的签名信息",请参阅app-release-unsigned.apk未签名.

  • 这对我有用。首次启用 proguard 后,至少需要在发布版本中登录。但不要忘记为生产版本设置“可调试为假”:) (4认同)

小智 5

这种方法显然可以帮助您在测试生产构建时获取日志。但在将应用程序上传到 Google Play 商店时要小心,在上传到生产环境之前切换debuggablefalse

buildTypes {
    debug {
        manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
    }
    release {
        manifestPlaceholders = [crashlyticsCollectionEnabled: "false"]
        lintOptions {
            checkReleaseBuilds false
            abortOnError false
        }
        shrinkResources true
        minifyEnabled true
        debuggable true
        signingConfig signingConfigs.productionrelease
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

设置crashlyticsCollectionEnabledfalse以避免在调试时向 Google Play 商店报告崩溃。