Android Gradle正在发布模式下生成可调试的APK
我的build.gradle上有以下代码:Android Gradle正在发布模式下生成可调试的APK,android,gradle,Android,Gradle,我的build.gradle上有以下代码: productFlavors { juridico { applicationId "br.com.eit.appprovaconcursos" } enem { applicationId "com.ioasys.appprova" } } buildTypes { defaultConfig {
productFlavors {
juridico {
applicationId "br.com.eit.appprovaconcursos"
}
enem {
applicationId "com.ioasys.appprova"
}
}
buildTypes {
defaultConfig {
debuggable false
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
testCoverageEnabled true
}
release {
debuggable false
testCoverageEnabled true
//noinspection GroovyAssignabilityCheck
signingConfig signingConfigs.release
}
}
要生成解除释放APK,请使用以下命令:
/gradlew assembleEnemRelease
在Google Play上上传生成的APK(app-enem-release.APK
)时,我发现以下错误:
您上载了一个可调试的APK。出于安全原因,您需要先禁用调试,然后才能将其发布到Google Play中。了解有关可调试APK的更多信息。
我能够通过在android清单上硬编码生成一个不可调试的APKandroid:debuggable=“false”
。但是构建配置仍然像一个可调试的构建,正如您在generate build.config中看到的(我仔细检查了一下,这个构建配置来自release文件夹,而且我没有收到Crashlytics上的任何数据,我从调试构建中禁用了它)
作为解决方法,我在defaultConfig中将debuggable设置为true,在release中我覆盖配置并将debuggable设置为false。我发现这个奇怪的结果来自
testCoverageEnabled true
如果您的发布版本启用了测试覆盖率,它将生成覆盖率报告,然后您的APK将成为可调试的APK
将
testCoverageEnabled
设置为false
解决问题,在发布版本中不生成覆盖率报告也是有意义的。这里也有同样的问题…@Guiherme Torres Castro:你能试着用这个替换你的gradle文件吗?我给出了这个链接,因为我不太确定答案,但这样我就解决了我的问题。@dex谢谢你的提示,不幸的是,它不起作用。不确定将debugable true
设置为发布模式是否是一个好主意。这似乎不是救命恩人!非常感谢。如果你能向谷歌报告就更好了
public final class BuildConfig {
public static final boolean DEBUG = Boolean.parseBoolean("true");
public static final String APPLICATION_ID = "com.ioasys.appprova";
public static final String BUILD_TYPE = "release";
public static final String FLAVOR = "enem";
public static final int VERSION_CODE = 20135;
public static final String VERSION_NAME = "3.0.1";
}