默认情况下,当我将 构建变体
更改为 发布
时,我在 logcat 上不会得到任何日志,但是我需要阅读我的应用程序的发布日志,该如何启用?
在<application>
标签内,将android:debuggable="true"
(默认值为false)添加到您的清单文件中。
android:debuggable
应用程序是否可以进行调试,即使在用户模式下运行时也可以——如果可以,则为“true”,否则为“false”。
您可以通过从清单文件中的
<application>
标签中删除android:debuggable属性或在您的清单文件中将android:debuggable属性设置为false来禁用调试。
您可能需要在build.gradle
文件的android{...}标记内添加以下内容:
lintOptions {
checkReleaseBuilds false
}
android:debuggable
就会打开日志记录。实际上,https://developer.android.com/studio/publish/preparing.html#publishing-configure 相当明确地指出关闭日志记录和关闭调试是两个不同的事情。问答者询问如何打开日志记录。 - LarsHandroid:debuggable="true"
启用日志记录的来源。 - LarsHdebuggable
的意思是可以将Android Studio中的Android Monitor附加到当前运行的APK上。这样可以在Logcat中显示日志语句,就像在调试版本中一样。除此之外:这个答案已经超过三年了 - 所以你很可能应该转而使用对应的build.gradle
属性debuggable
,可以根据buildType进行设置。 - reVerse你应该添加
android {
buildTypes {
release {
debuggable true
在这种情况下,你可以使用Log.
或System.out.println
来查看日志。
如果你无法运行发布版本(app
已禁用),并出现错误提示:“apk未签名。请使用“项目结构”对话框配置所选flavor的签名信息”,请参见app-release-unsigned.apk未签名。
debuggable
设置为 false
:) - MohK我不喜欢另一种解决方案,因为那样你就无法测试应用程序的实际部署情况。
更好的解决方案是打开Android设备监视器,即使在发布配置下使用debuggable=false
,也可以查看日志。
在这里找到它:
工具-> Android -> Android设备监视器
更新:
Android Studio 3.2中删除了Android Device Monitor。但是,它仍然存在于SDK中,您可以使用它来查看日志(位于$ANDROID_SDK/tools/
)。
$ANDROID_SKD/tools/
)。 - Vadim Kotov$ANDROID_SDK/tools/
而不是$ANDROID_SKD/tools/
- 不幸的是,我无法保存我的编辑。 - Remigius Stalder这种方法显然可以帮助您在测试生产版本时获取日志。但是,在将应用上载到Google Play商店之前,请确保将 debuggable
开关设置为 false
。
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'
}
}
crashlyticsCollectionEnabled
设置为 false
可以避免在调试时崩溃报告发送到 Google Play 商店。BuildConfig.DEBUG
)。例如:const val TEST = true
。但是不要忘记在发布应用程序时更改它的值。 - CoolMind
Log.d
调用会被移除 - 我不确定是否还有其他级别也会被移除。 - Squonk