Я использую «Дооснащение» для совершения звонков в API. Я добавил перехватчик, чтобы просмотреть запрашиваемый url. В отладочных версиях URL-адрес переведен правильно, но подписанные релизы заставляют URL-адрес не переводить и анализировать, как следует. Некоторые соответствующий код ниже:Доработка Дополн. Ссылка не удалена
дооснащения обслуживание:
@GET("/1.1/launch/next/{number}")
Observable<LaunchResponse> getNextXLaunches(@Path("number") int numberOfNextLaunches);
При вызове этого метода, я просто передать в целое число, чтобы определить количество запусков запрашивают. В подписанных файлов APK, выше производит следующий URL:
..../1.1/launch/next/%7BlaunchNum%7D
вместо
..../1.1/launch/next/10
Как вы можете видеть, значение, передаваемое в путь не переводится правильно, и вместо {number}
решается буквально.
Я пробовал разные версии после встретив аналогичные вопросы:
compile 'com.squareup.retrofit2:retrofit:2.0.0-beta4'
compile 'com.squareup.retrofit2:converter-gson:2.0.0-beta4'
compile 'com.squareup.okhttp:okhttp:2.4.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.0.0-beta4'
compile 'com.squareup.okhttp3:logging-interceptor:3.3.1'
compile 'com.squareup.retrofit2:retrofit:2.1.0'
compile 'com.squareup.retrofit2:converter-gson:2.1.0'
compile 'com.squareup.okhttp3:okhttp:3.5.0'
compile 'com.squareup.retrofit2:adapter-rxjava:2.1.0'
compile 'com.squareup.okhttp3:logging-interceptor:3.5.0'
Что я нахожу странным, эта проблема присутствует только при запуске подписанного релиза APK. Что может быть причиной этой проблемы? В чем проблема?
EDIT: В соответствии с просьбой, вот некоторые соответствующие правила Proguard:
# Retrofit 2.X
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
# OkHttp
-keepattributes Signature
-keepattributes *Annotation*
-keep class com.squareup.okhttp.** { *; }
-keep interface com.squareup.okhttp.** { *; }
-dontwarn com.squareup.okhttp.**
# OkHttp3
-keepattributes Signature
-keepattributes *Annotation*
-keep class okhttp3.** { *; }
-keep interface okhttp3.** { *; }
-dontwarn okhttp3.**
EDIT: Я построил релиз minifyEnabled
набор для false
отключить ProGuard, и она работала правильно. Поэтому проблема должна быть в моей конфигурации ProGuard, хотя я не уверен, что это может быть.
Вы используете progaurd? –
Да. Дополнения, OkHttp и OkHttp3 все добавлены в мои правила proguard. – Orbit
Вы можете добавить свои правила для progaurd? –