Я использую Google Rest API v3 для подключения своего приложения для Android к Google Диску. Когда я запускаю без Proguard (minifyEnabled=false), все хорошо. Однако, когда я включаю proguard, вызываются неправильные методы REST API. Когда я вызываю Drive.Files.get().execute для корневого псевдонима диска «root», я получаю результат для Drive.Files.list().execute. Когда я отключаю «minifyEnabled», я вижу правильный результат. Вот раздел build.gradle, который управляет запуском Proguard:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
Файл Proguard по умолчанию — это немодифицированный файл, который распространяется с Android Studio 2.2 (не оптимизированная версия).
А это содержимое моего файла proguard-rules.pro
-keepattributes EnclosingMethod
-keepattributes InnerClasses
-dontoptimize
-keep class com.google.**
-keep class com.fasterxml.**
-dontwarn com.google.**
Когда я проверяю сгенерированный файл mapping.txt, я все еще вижу переименованные члены в классах, которые imo shoudl были «сохранены». Например:
com.google.api.client.auth.oauth.OAuthParameters -> com.google.api.client.auth.oauth.OAuthParameters: java.security.SecureRandom RANDOM -> l com.google.api.client.auth.oauth. Подписывающая сторона OAuthSigner -> обратный вызов java.lang.String -> b java.lang.String ConsumerKey -> c одноразовый номер java.lang.String -> d область java.lang.String -> e
Я бы подумал, что "-keep class com.google.**" избежал бы этого?
Есть идеи, как это исправить?
Заранее спасибо,