Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/197.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用proguard后Android apk未连接到Azure服务器_Android_Azure_Proguard - Fatal编程技术网

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

使用proguard后Android apk未连接到Azure服务器,android,azure,proguard,Android,Azure,Proguard,我一直在寻找这个问题的解决方案,我尝试了许多proguard配置,但都没有成功。 在我使用proguard制作发布版本之前,该应用程序一直运行良好。 我得到一个错误: “java.lang.IllegalArgumentException:表示mobile serviceTable的类在分配类时必须定义一个id属性” 我相信这是由我试图访问的表的类引起的,它的变量“id”名称发生了更改 我的意见如下: public class User { public String id; pub

我一直在寻找这个问题的解决方案,我尝试了许多proguard配置,但都没有成功。 在我使用proguard制作发布版本之前,该应用程序一直运行良好。 我得到一个错误: “java.lang.IllegalArgumentException:表示mobile 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 public class com.company.app.User { *; }
-keepclassmembers public class com.company.app.User { *; }
-keep public class com.company.app.User { *; }
-keepclassmembers public class com.company.app.User { *; }

解决了。只需在proguard文件中删除用户之后的。**。就这样吧:

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

您是否已尝试将附加的SerializedName行添加到您的proguard配置中,如其中一篇链接帖子注释中所述-keep@interface com.google.gson.annotations.SerializedName您的意思是将类成员@com.google.gson.annotations.SerializedName(“id”)放入,然后添加-keepattributes Annotation-keep@interface com.google.gson.annotations.SerializedName吗?对我已经试过了,我正在检查proguard文件,在mapping.txt中我可以看到com.company.app.User->com.company.app.User:java.lang.String昵称->java.lang.String手机->b,所以这些都被混淆了,在usage.txt:public java.lang.String id中没有保留id…我想这是我解决的问题问题只需在proguard文件中删除用户之后的.*,即可修复。我真不敢相信我花了那么多时间在这件事上……我建议添加这一点作为答案,并接受它,以便下次有人遇到它时,你将为他们提供解决方案:)