Я использую 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 ()'
Как это исправить?
Ответы:
Насколько я знаю
runProguard
был заменен наminifyEnabled
. Я все еще не уверен, как определить конфигурацию для proguard, но поиск в Google должен помочь вам узнать.Редактировать:
Для
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 + "]"); } }
источник
applicationVariants.all { variant ->
строку, но принял остальное, спасибоВместо использования
runProguard
в вашем файле gradle попробуйте использоватьminifyEnabled
. Это должно решить проблему.runProguard
устарел и скоро перестанет работать.РЕДАКТИРОВАТЬ
Для использования
minifyEnabled
gradle необходимо обновить до версии 2.2 или выше.источник
minifyEnabled
(неminifyEnable
)Может помочь изменение в файле приложения 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' } }
источник
Если вы используете плагин версии 0.14.0 или выше
gradle
, вам следует заменить "runProguard
" на "minifyEnabled
" в своемbuild.gradle
файлах.Просто добавь это.
buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' } }
minifyEnabled false
Означает, что имена типов сборки не могут быть main или androidTest (это обеспечивается плагином), и что они должны быть уникальными друг для друга.Новая версия
Gradle
плагина Android может автоматически удалять неиспользуемые ресурсы. Большим преимуществом здесь является то, что он удаляет неиспользуемые ресурсы не только из вашего собственного кода, но, что более важно, из библиотек, которые вы используете (например, там, где есть ресурсы, включенные для поддержки функций, которые вы фактически не используете в своем приложении).источник
Начиная с Gradle 0.14.4 , эти ошибки сообщаются как ошибки времени компиляции.
Поэтому вам нужно заменить
runProguard false/true
наminifyEnabled false/true
Изменения перечислены в блоге разработчиков Android .
источник
Для миграции Gradle Projects в версию 1.0.0 требуется легкое переименование, все описано здесь: http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0
Для proguard вы можете просто переименовать 'runProguard' => 'minifyEnabled', остальные см. Ниже:
Renamed Properties in BuildTypes: runProguard => minifyEnabled zipAlign => zipAlignEnabled jniDebugBuild => jniDebuggable renderscriptDebug => renderscriptDebuggable Renamed Properties in ProductFlavors: flavorGroups => flavorDimensions packageName => applicationId testPackageName => testApplicationId renderscriptSupportMode => renderscriptSupportModeEnabled ProductFlavor.renderscriptNdkMode => renderscriptNdkModeEnabled Other Name changes InstrumentTest was renamed to androidTest.
источник
Это связано с обновлением инструментов Gradle Android до версии 0.14.3. В свой файл "build.gradle" замените
classpath 'com.android.tools.build:gradle:0.14.+'
от:
classpath 'com.android.tools.build:gradle:0.14.2'
Пока они не исправят ...
источник
runProguard был переименован в minifyEnabled в версии 0.14.0 (2014/10/31) Gradle.
Чтобы исправить это, вам нужно изменить runProguard на minifyEnabled в файле build.gradle вашего проекта.
источник