gpt4 book ai didi

java - 带有 Spring Rest 模板的 AndroidAnnotations 在混淆时不起作用

转载 作者:行者123 更新时间:2023-12-02 06:08:03 25 4
gpt4 key购买 nike

我的 Android 应用程序使用 AndroidAnnotations 和 Spring Rest Template。创建调试版本时,它运行良好。然而,当我创建发布版本时,REST 调用不起作用。以下是我的代码和构建配置中的一些相关 fragment 。

Activity

public class MyActivity extends Activity {
@Bean
protected MyService myService;

@Background
protected void fetchData() {
try {
data = myService.getData();
} catch (DataAccessException dae) {
Log.e(getClass().getSimpleName(), dae.getMessage(), dae);
}
}
}

服务

@EBean
public class MyService {
@RestService
protected MyRestClient myRestClient;

public Data getData() {
return myRestClient.getData();
}
}

RestClient

@Rest(converters = { GsonHttpMessageConverter.class },
interceptors = { AuthenticationInterceptor.class, UserAgentInterceptor.class },
rootUrl = "https://myhost/rest")
public interface MyShiftRestClient {
@Get("/data")
Data getData();
}

ProGuard 配置

-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe
-dontwarn org.springframework.**

-keep class com.mypackage.** {
public protected private *;
}

-keepclassmembers public class org.springframework.** {
public *;
}

运行混淆应用程序时,MyRestClient 返回的 Data 对象是一个空对象,即它已初始化,但其实例变量没有任何值。我猜这与我的 ProGuard 配置有关,这就是为什么我添加了最后一个配置语句,但它没有效果。没有记录任何异常。

最佳答案

也尝试保留 Data 类的成员。数据类属性必须保持不变才能允许 Gson 转换器填充它,因为它是根据属性名称完成的。

祝你好运。

关于java - 带有 Spring Rest 模板的 AndroidAnnotations 在混淆时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22116969/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com