开发者社区> 问答> 正文

阿里云OpenAPI 的android调用sdk的时候,不开启混淆正常;开启混淆后,报错了。为什么?

阿里云OpenAPI 的android调用sdk的时候,不开启混淆正常;开启混淆后,报错了。
但是报错的requestID,不是我产品的接口,是openplatform的,看下是什么原因呢?
requestID:51A01EEA-D0B6-5306-889D-3ED35CE22D35

混淆配置:
-keep class com.aliyun.imageaudit20191230. { *; }
-dontwarn com.aliyun.imageaudit20191230.

展开
收起
三分钟热度的鱼 2023-11-08 21:10:58 70 0
4 条回答
写回答
取消 提交回答
  • 这可能是由于混淆规则不正确引起的。混淆器可能会更改 OpenAPI 库中的类名和字段名,导致您的应用程序无法正确地找到所需的类和方法。建议您在混淆规则中增加以下内容,以确保所有必要的类和字段保持不变:

    • 在混淆规则文件中增加下面一行:

      javascript

      -keep class com.aliyun.imageaudit20191230. { ; }

    • 在 ProGuard 文件中增加下面一行:

      less

      -dontwarn com.aliyun.imageaudit20191230.*

    这样,混淆器就不会修改 OpenAPI 库中的类名和字段名。您可以在您的项目的 ProGuard 规则文件(通常是 proguard-rules.pro)中添加这些规则,以确保它们在混淆过程中不会被更改。
    同时,建议您在测试混淆之后,务必进行充分的测试,以确保应用程序的行为和功能仍然正常。

    2023-11-10 09:58:54
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    如果使用混淆配置之后调用阿里云 OpenAPI 出现问题,请检查一下混淆配置是否正确:

    1. 确保混淆规则中包含所有依赖库的类和方法。
    2. 检查是否启用了正确版本的 SDK 并使用最新版本的 SDK。
    3. 检查所有接口签名是否正确。
    2023-11-09 13:47:01
    赞同 展开评论 打赏
  • 从你提供的信息来看,你在使用阿里云的OpenAPI时,开启混淆后出现了问题。并且报错的requestID是openplatform的。这可能涉及到了混淆时类名或方法名的改变,导致SDK无法正常调用。

    首先,你需要确认混淆配置是否正确。你的混淆配置中,你保留了com.aliyun.imageaudit20191230这个包下的所有类,这看起来是正确的。然而,你还需要确保其他阿里云SDK使用的类和你的应用代码中使用的类名一致。

    另外,报错requestID是openplatform的,这可能意味着问题不在你的代码中,而是在阿里云的SDK或者OpenAPI服务本身。这可能是由于混淆导致的问题,也可能是阿里云的服务端出现了问题。

    以下是一些可能的解决方案:

    1. 确认混淆配置:检查你的混淆配置是否正确。确保所有需要保护的类和方法都被正确地保留下来。
    2. 确认SDK版本:确认你使用的阿里云的SDK版本是否是最新的,或者是否与你的应用兼容。更新你的SDK到最新的版本可能会解决这个问题。
    3. 联系阿里云支持:如果以上方法都无法解决问题,你可以联系阿里云的技术支持,向他们报告这个问题。他们可能会给你提供更具体的解决方案,或者在他们的服务端修复这个问题。

    请注意,开启混淆可能会改变类名和方法名,这可能会导致一些问题。因此,在开启混淆之前,你需要确保你的代码和使用的第三方库都能够正确地处理这种情况。

    2023-11-09 10:14:41
    赞同 展开评论 打赏
  • OpenPlatform 是内部文件上传鉴权,用户应该不感知这块逻辑。有两个可能

    1. 代码写错了,在外部强行调用了OpenPlatform。

    2. 混淆引发的源码逻辑异常,一般不会,用户可以debug看看。或者看下是不是在gradle文件声明了次级依赖,但是没打keep,导致imageaudit20191230的次级依赖冲突被混淆了。此回答整理自钉群“OpenAPI 开发者门户 - 值班服务群2群”

    2023-11-08 21:29:34
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载