我通过sunmi打印机从github
下载了一个Android
项目,以测试我的pos打印机,但是当开始构建并sync
project
时,它给了我这个gradle error
:
错误:无法为类型为 com.android.build.gradle.internal.api.ApkVariantOutputImpl 的 ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[], versionCode=9, versionName=v2.7.2}} 设置只读属性 'outputFile' 的值。
这里是格拉德尔:
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')
}
根据此参考,变量的输出不提供设置输出文件名的 setter 方法。因此,它不适用于较新版本的Gradle API。
解决方案:您可以使用 defaultConfig 块中的setProperty()
方法来设置更改基础 apk 名称,如下所示,
defaultConfig {
....
setProperty("archivesBaseName", "your apk name here")
....
}