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

标签 android azure proguard

我一直在寻找这个问题的解决方案,我尝试了很多混淆器配置但没有成功。 该应用程序运行完美,直到我用 proguard 制作发布版本。 我收到错误: “java.lang.IllegalArgumentException:代表移动服务表的类必须定义单个 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>() {....

混淆器配置文件是:

-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 文件中 User 后面的 .** 即可。保持这样:

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

最佳答案

解决了。只需删除 proguard 文件中 User 后面的 .** 即可。保持这样:

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

关于使用 proguard 后 Android apk 无法连接到 Azure 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28433847/

相关文章:

java - Android - 将 HTML 分享到 WhatsApp 和电子邮件

reactjs - 静态托管 - 使用 Azure CDN 的 Azure Blob 存储上的 ReactJS 应用程序

android - 如何减少 apk 中的 GMS 大小

android - Crashlytics 中的 Proguard 堆栈

java - proguard 规则不适用于某些 Java 文件

android - 如何导入发件人类 - Java App Engine

android - aChartEngine 处理大数据时真的很慢

android - Android 版本 18 的类设置错误

azure - Azure 是否有允许超过 1024 个字符的 TTS(文本转语音)服务?

c# - 将 Bot 框架与 LUIS 连接。我应该使用哪个 AppId 和 AppKey?