Дооснащение 2.4.0 с Proguard - PullRequest
0 голосов
/ 05 июня 2018

Когда я добавляю библиотеку Retrofit 2.4.0 в проект Android>

implementation 'com.squareup.retrofit2:retrofit:2.4.0'

и устанавливаю minifyEnabled {true}

buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } }

, а затем добавляю эти правилаto proguard-rules.pro

-keep class com.squareup.** { *; }
-keep interface com.squareup.** { *; }
-keep class retrofit2.** { *; }
-keep interface retrofit2.** { *;}
-keep interface com.squareup.** { *; }


-keepclasseswithmembers class * {
    @retrofit2.http.* <methods>;
}


-dontwarn rx.**
-dontwarn retrofit2.**
-dontwarn okhttp3.**
-dontwarn okio.**

Наконец-то успешно создан и сгенерирован подписанный apk, но проблема заключается в том, что при запуске (release apk)> запросы на модификацию не отправляются и не возвращаются {null} .. Какое решение Пожалуйста!

Ответы [ 2 ]

0 голосов
/ 05 июня 2018

Ваши правила Proguard работают для Retrofit, но они также запутывают классы моделей, которые вы используете для сериализации / десериализации ваших данных.Их имена важны, так как Retrofit / Gson сопоставляет их для выполнения сериализации / десериализации.Proguard превращает их в бред, как a и b, поэтому Retrofit / Gson не может их понять.

В зависимости от настроек вашего пакета, вам нужно добавить следующее, как указано в amin mahmodi.

-keep class your.package.name.models.** { *; }

0 голосов
/ 05 июня 2018

может быть из-за работы других библиотек с модернизацией, такой как ваш загрузчик или анализатор.

важное замечание:

добавьте правило, чтобы ваши классы моделей и предметы, которые работают с анализатором, были такими:

-keep class com.address_package.** { *; }

если вы используете okhttp или Okhttp3 с модификацией, добавленной ниже правил

примечание: и проверьте также ваши правила защиты синтаксического анализатора

БИБЛИОТЕКА: OkHttp

-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }

-dontwarn com.squareup.okhttp.**
-dontwarn okio.**

okhttp3

-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }

-dontwarn okhttp3.**
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...