0

在我的应用程序中,我使用改造 2 进行网络通信。我有一个 serverAPI 接口,其中包含每个 api 请求,例如:

@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 回答