当前位置: 首页 > 知识库问答 >
问题:

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

松刚豪
2023-03-14

我一直在寻找这个问题的解决方案,我尝试了许多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 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.** { *; }

几个小时以来,我尝试了许多修改,但没有成功。我遵循了这个和这个。

你能帮帮我吗?谢谢

编辑:已解决。只需移除。**在proguard文件中的User之后。保持这样:

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

共有1个答案

巫马山
2023-03-14

已解决。只需移除。**在proguard文件中的User之后。保持这样:

-keep public class com.company.app.User { *; }
-keepclassmembers public class com.company.app.User { *; }
 类似资料:
  • 我正在创建一个聊天应用程序,其WebSocket服务器是用java编写的。 对于WebSocket客户端,我正在使用SocketRocket库。 当我尝试从本地主机或127.0.0.1连接时,一切正常 但当我尝试使用公共IP连接它时,它在

  • 我需要将一条消息从运行在SQL Server2014下的SSIS包放入Azure ServiceBus队列中。正如本文所建议的:从ssis连接到azure服务总线队列,我编写了一个引用“azure SDK2.9”的脚本任务。这种方法适用于Azure存储帐户处理Blob(引用Microsoft.WindowsAzure.Storage程序集),但不适用于Azure存储总线(引用Microsoft.S

  • 另一个用户'sJohnston'问了一个与我的问题相关的问题: 在进行了您建议的更改后,我得到了以下错误: 连接到Azure服务总线:log4j:warn找不到记录器(com.microsoft.windowsazure.services.servicebus.ServiceBusContract)的追加器。log4j:警告请正确初始化log4j系统。log4j:警告有关详细信息,请参阅http:

  • 我正在尝试从已部署到Azure应用程序服务的API连接到本地SQL Server。我已建立Azure混合连接以连接本地SQL和Azure。我创建了一个连接字符串,其中包括用户名和密码,作为我在本地服务器中创建的本地登录名的用户名和密码。这允许我连接。 连接字符串: 但是,我想使用windows身份验证连接到服务器。我的系统帐户可以访问服务器,但使用连接字符串作为- 或 它给出的错误为 “登录失败。

  • 我已使用WebForms从VS-2019成功发布Azure应用服务。我已成功保护它,以便用户必须使用与应用服务相同域中的Azure AAD帐户登录。我已成功创建AzureSQL数据库。我已成功将AAD域中的用户添加到数据库中,并通过将我创建的Azure AAD帐户用户之一硬编码到连接字符串中,从Azure应用服务中连接到数据库。 现在,我想使用应用程序服务登录名中经过身份验证的AAD用户连接到Az

  • 我们有一个ASP经典Web应用程序在Azure应用服务中成功运行,该应用程序当前使用SQL服务器身份验证来访问AzureSQL数据库。我们需要将身份验证更改为Active Directory用户。我们设法使此应用程序从访问AzureSQL数据库的开发人员工作站工作,请参阅下面的工作和不工作。 *不适用于桌面,也不适用于Azure Conportail。打开"提供商=SQLOLEDB;服务器=tcp