У меня проблемы с градулой proguard... У меня есть следующие модули:
- Приложение: основной модуль приложения. Имеют зависимость ModuleA и ModuleC
- ModuleA: библиотечный модуль. Имеют зависимость ModuleB и jar dependecies.
- МодульB: модуль библиотеки
- Модуль Module: библиотечный модуль
- Износ: носить модуль приложения.
build.gradle файлы: - Приложение:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':ModuleA')
compile project(':ModuleC')
wearApp project(':Wear')
}
ModuleA:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile project(':ModuleB')
}
ModuleB:
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
ModuleC: То же, что и ModuleB.
Wear:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
** Я написал только важные строки
Моя проблема заключается в том, что если я создаю подписанный APK с этой конфигурацией, когда я устанавливаю его на устройство, он вылетает с этим исключением:
java.lang.NoSuchFieldError: нет поля с именем = 'peer' signature = 'J' в классе Lcom/package/ClassInJar;
Он сбой в классе, содержащемся в банке в папке libs модуля A.
Если я устанавливаю minifyEnabled на false во всех модулях, он не сбой, но я предпочитаю обфускацию кода. И если я превращу minifyEnabled в true в библиотечных модулях, он не компилируется и покажет мне это исключение:
Error:Execution failed for task ':ModuleB:proguardRelease'.
java.io.IOException: выходной бачок пуст. Вы указали правильные опции -keep?