У меня есть очень простой проект для Android. Этот проект содержит основной модуль приложения с именем app и библиотечный модуль для библиотек поддержки Android с именем AndroidSupport.
Я хочу запускать Proguard исключительно на AndroidSupport (т. е. НЕ во всем приложении), поскольку у меня возникают проблемы с запуском инструментальных тестов приложения, когда оно поддерживает Proguard.
Я надеюсь, что смогу минимизировать AndroidSupport самостоятельно, чтобы мне не нужно было защищать код моего приложения Proguard (и, таким образом, избежать проблемы невыполнения тестов).
Вот мое приложение build.gradle. Обратите внимание, что Proguard ОТКЛЮЧЕН:
Код: Выделить всё
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.androidsupportlibproject"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
debug {
minifyEnabled false //Proguard DISABLED
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':AndroidSupport')
}
Код: Выделить всё
apply plugin: 'com.android.library'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
minSdkVersion 9
targetSdkVersion 22
}
buildTypes {
release {
minifyEnabled true //Proguard ENABLED
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.2.0'
compile 'com.android.support:support-annotations:22.2.0'
}
Код: Выделить всё
-dontobfuscate
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
Но когда я использую вставленную выше конфигурацию, я получаю следующую ошибку:
Код: Выделить всё
Error:Execution failed for task ':AndroidSupport:proguardRelease'.
java.io.IOException: The output jar is empty. Did you specify the proper '-keep' options?`
Заранее спасибо!
Подробнее здесь: https://stackoverflow.com/questions/320 ... ication-mo
Мобильная версия