Я хотел бы запустить ProGuard в выпуске моей библиотеки Android. Ниже мой файл build.gradle
который входит в мой проект.
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 10 targetSdkVersion 18 } sourceSets { main { java { srcDir 'src/main/java' } resources { srcDir 'src/../lib' } } } buildTypes { release { runProguard true proguardFile getDefaultProguardFile('proguard-android.txt') } } }
Выполнение gradlew clean
или gradlew build
возвращает следующую ошибку:
> Could not find method buildTypes() for arguments [build_25r1m0a3etn5cudtt5odlegprd$_run_closure2_closure10@5f3306ad] on project
Кажется, что в плагине- android-library
отсутствует метод buildTypes
. Если я изменяю apply plugin
к android
, gradlew
успешно работает. Однако это проект библиотеки, и я хотел бы сохранить его. Другие части my my gradle.build
(не упомянутые здесь) полагаются на проект, являющийся библиотекой.
Есть ли способ сделать плагин для android-library
версии ProGuard для сборки?
Решила мою проблему, buildTypes
из buildTypes
так:
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion "18.0.1" defaultConfig { minSdkVersion 10 targetSdkVersion 18 } sourceSets { main { java { srcDir 'src/main/java' } resources { srcDir 'src/../lib' } } } release { runProguard true proguardFile getDefaultProguardFile('proguard-android.txt') proguardFile 'proguard-android.txt' } }
Также обратите внимание, что я добавил еще один proguardFile
под release
. Это исправило еще одну проблему, buildTypes
после решения исходной проблемы buildTypes
.