我一直在使用Android Studio开发应用程序,经过测试,我已准备好发布到Google Play。
当我尝试创建已签名的APK时,在创建密钥后,gradle构建将停止,并显示以下消息:
Please correct the above warnings first.
经过大量研究后,我发现问题可能出在build.gradle(Module:app)中,而且我读到的内容是缺少这一行:
lintOptions {
checkReleaseBuilds false
abortOnError false
}
但是,即使有了这条线,它也无法运作。以下是信息:
编辑:
继承人我的build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "br.com.companyname.appname"
minSdkVersion 15
targetSdkVersion 27
versionCode 1
versionName "2018.05.11 v2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
lintOptions {
checkReleaseBuilds false
abortOnError false
}
}
dependencies {
implementation project(path: ':componentsutils')
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
implementation 'de.hdodenhof:circleimageview:2.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation group: 'org.apache.commons', name: 'commons-text', version: '1.2'
implementation group: 'commons-io', name: 'commons-io', version: '2.4'
implementation 'com.android.support:design:27.1.1'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:palette-v7:27.1.1'
implementation 'com.squareup.retrofit:retrofit:1.9.0'
implementation 'com.squareup.okhttp:okhttp:2.7.5'
implementation 'com.github.d-max:spots-dialog:0.4@aar'
implementation 'com.github.barteksc:android-pdf-viewer:2.8.2'
implementation 'br.com.livroandroid:android-utils:1.0.2'
implementation 'com.android.support:exifinterface:27.1.1'
}
编辑2
深入了解构建错误,我发现了这个Stacktrace:
答案 0 :(得分:2)
我今天遇到这个错误,浪费了几个小时。我这样做了
- 更新了所有应用依赖关系,例如
google.gms
和google.support
库。- 更新了
gradle-wrapper.properties
文件中的gradle包装器版本。- 更新了项目级
醇>build.gradle
中的gradle插件版本。
如果你问我在哪里找到最新版本
您将在所有这三个方面得到建议,只需接受alt + enter
密钥的建议。
答案 1 :(得分:1)
看起来您的ProGuard配置存在问题。
Here是Android开发者网站上ProGuard的描述,基本上它是一个工具,可以做一些事情,包括删除它认为不必要的代码。问题是,它通常会删除运行甚至构建所必需的代码,就像你的情况一样。 要解决此问题,您可以做两件事。
添加
android {
...
buildTypes {
release {
minifyEnabled false
...
}
}
...
}
到您的应用级build.gradle文件。
在这种情况下,您可以保留设置
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
}
您需要编辑proguard-rules.pro
文件。它应与您的应用级build.gradle
文件位于同一目录中。通常,每个库都会在其网站上提供proguard规则,例如retrofit将它们放在页面底部。浏览所有库并将所有必要的规则添加到proguard-rules.pro
文件中。