【发布时间】:2019-09-12 08:47:33
【问题描述】:
我通过 sunmi 打印机从 github 下载了一个 Android 项目,以测试我的 pos 打印机,但是当开始构建和 sync project 它给了我这个 gradle error:
错误:无法为类型的 ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[], versionCode=9, versionName=v2.7.2}} 设置只读属性“outputFile”的值com.android.build.gradle.internal.api.ApkVariantOutputImpl.
这里是 Gradle:
apply plugin: 'com.android.application'
android {
signingConfigs {
release {
keyAlias 'key0'
keyPassword '123456'
storeFile file('../app/temp.jks')
storePassword '123456'
}
debug {
keyAlias 'key0'
keyPassword '123456'
storeFile file('../app/temp.jks')
storePassword '123456'
}
}
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
applicationId "com.test.printertestdemop1"
minSdkVersion 21
targetSdkVersion 23
versionCode 9
versionName "v2.7.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
lintOptions {
abortOnError false
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.release
}
}
android.applicationVariants.all {
variant ->
variant.outputs.each {
output -> output.outputFile = new File(output.outputFile.parent, "PrinterDemo_" + defaultConfig.versionName + "_P1.apk");
}
}
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:23.3.0'
implementation 'com.android.support:recyclerview-v7:23.3.0'
implementation 'com.sunmi:sunmiui:latest.release'
implementation files('libs/core-3.3.0.jar')
}
【问题讨论】:
-
注释掉
android.applicationVariants.all代码块,它将正常工作。问题是由于 Gradle API 更改,输出文件对象的 setter 方法已删除。 -
把它设置为答案兄弟,这样我就可以添加一个积极的反馈,它的工作!