我正在使用android studio 0.9.3和gradle 'com.android.tools.build:gradle:0.14.+'
应用插件:'com.android.application‘
android {
compileSdkVersion 19
buildToolsVersion '20.0.0'
defaultConfig {
applicationId "xxx.xxx.xxx"
minSdkVersion 16
targetSdkVersion 19
versionCode 1
versionName "1.0.11"
}
signingConfigs{
releaseConfig{
storeFile file("xxxxxxx")
storePassword = "xxxx"
keyAlias = "xxxx"
keyPassword = "xxxx"
}
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.releaseConfig
// adds version to file name
applicationVariants.all { variant ->
def file = variant.outputFile
variant.outputFile = new File(file.parent, file.name.replace(".apk", "-" + defaultConfig.versionName + ".apk"))
}
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// You must install or update the Support Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
// You must install or update the Google Repository through the SDK manager to use this dependency.
// You must install or update the Support Repository through the SDK manager to use this dependency.
compile 'com.android.support:support-v4:19.+'
compile 'com.android.support:appcompat-v7:19.+'
compile 'com.mcxiaoke.volley:library:1.0.6'
compile 'com.google.code.gson:gson:2.2.+'
}
之前编译的项目在该文件中没有任何更改,我得到:错误:(26,0) Gradle DSL方法未找到:'runProguard()'
如何解决这个问题?
发布于 2014-11-19 20:06:49
据我所知,minifyEnabled
取代了runProguard
。我仍然不确定如何定义proguard的配置,但谷歌搜索应该会帮助你找到答案。
编辑:
对于outFile
,请阅读此处:https://groups.google.com/forum/#!topic/adt-dev/4_-5NvxuFB0如何做到这一点。
简而言之:他们使用了一个更复杂的版本:
applicationVariants.all { variant ->
variant.outputs.each { output ->
def apk = output.outputFile;
def newName;
// newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-" + variant.buildType.name.toUpperCase() + ".apk");
if (variant.buildType.name == "release") {
newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-release.apk");
} else {
newName = apk.name.replace(".apk", "-v" + defaultConfig.versionName + "-beta.apk");
}
output.outputFile = new File(apk.parentFile, newName);
if (output.zipAlign) {
output.outputFile = new File(apk.parentFile, newName.replace("-unaligned", ""));
}
logger.info('INFO: Set outputFile to ' + output.outputFile + " for [" + output.name + "]");
}
}
发布于 2014-11-21 09:44:50
尝试使用minifyEnabled
,而不是在gradle文件中使用runProguard
。这应该可以解决这个问题。runProguard
已被弃用,很快就会停止工作。
编辑
要使用minifyEnabled
,gradle应该更新到2.2或更高版本。
发布于 2014-12-05 13:20:56
应用程序build.gradle文件中的更改可能会有所帮助:
旧的:
buildTypes {
release {
runProguard false // this line has to be changed
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
新的:
buildTypes {
release {
minifyEnabled false // new version
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
https://stackoverflow.com/questions/27016385
复制相似问题