Android apk在使用proguard后未连接到Azure服务器

时间:2015-02-10 14:14:43

标签: android azure proguard

我一直在寻找这个问题的解决方案,我已经尝试了许多proguard配置但没有成功。 该应用程序运行完美,直到我使用proguard发布版本。 我收到错误: “java.lang.IllegalArgumentException:在分配类时,表示移动serviceTable的类必须定义一个id属性”

我相信这是由我想要达到的表格类引起的,其变量'id'名称已更改。

我有以下内容:

public class User {
   public String id;
   public String nickname;
   public String phone;
}

并且连接是:

mClient.getTable(User.class).where().field("nickname")
    .eq(nick).execute(new TableQueryCallback<User>() {....

proguard配置文件是:

-keep class com.microsoft.azure.storage.table.** { *; }
-dontwarn com.fasterxml.jackson.core**

-keep class com.microsoft.windowsazure.mobileservices.** { *; }
-dontwarn android.os.**
-dontwarn com.microsoft.windowsazure.mobileservices.RequestAsyncTask

##---------------from here is the part that i have modified a lot of times -

-keepattributes Signature
-keepattributes *Annotation*
-keep public class com.company.app.User.** { *; }
-keepclassmembers public class com.company.app.User.** { *; }

我已经尝试了几个小时的修改而没有成功。 我跟随thisthis以及其他许多人。

你能帮帮我吗? 感谢

编辑:解决了。只需在proguard文件中删除用户之后的。**即可。保持这样:

-keep public class com.company.app.User { *; }
-keepclassmembers public class com.company.app.User { *; }

1 个答案:

答案 0 :(得分:2)

解决。只需在proguard文件中删除用户之后的。**即可。保持这样:

-keep public class com.company.app.User { *; }
-keepclassmembers public class com.company.app.User { *; }