0

私のアプリでは、ネットワーク通信にレトロフィット 2 を使用しています。たとえば、すべてのAPIリクエストを含むserverAPIインターフェースがあります。

@Multipart
@POST(V2__ACCOUNT__UPLOAD_AVATAR)
Call<UploadAvatarResponse> uploadAvatar(@PartMap Map<String, RequestBody> params);

アプリケーションを難読化するために Dexguard 7.2.09 を使用していますが、すべてのネットワーク通信が正常に機能しています。

何が悪いのか本当にわかりません。

アプリケーションがこのリクエストを呼び出すと、コードは onFailure() メソッドにジャンプしますが、アプリはサーバーにリクエストを送信しません。

アプリケーションを難読化しなければ、すべて正常に動作します。

4

2 に答える 2

0

コールバックを使用しているため、次を追加する必要がある場合があります。

-keepattributes Exceptions
于 2016-08-24T15:55:58.347 に答える
0

プロジェクトで Proguard を使用している場合は、構成に次の行を追加します。

# Platform calls Class.forName on types which do not exist on Android to determine platform.
-dontnote retrofit2.Platform
# Platform used when running on RoboVM on iOS. Will not be used at runtime.
-dontnote retrofit2.Platform$IOS$MainThreadExecutor
# Platform used when running on Java 8 VMs. Will not be used at runtime.
-dontwarn retrofit2.Platform$Java8
# Retain generic type information for use by reflection by converters and adapters.
-keepattributes Signature
# Retain declared checked exceptions for use by a Proxy instance.
-keepattributes Exceptions

ソース: http://square.github.io/retrofit/

于 2016-08-24T16:36:30.840 に答える