You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DJI SDK 4.5.1发布版开启minifyEnabled后崩溃求助

解决DJI SDK 4.5.1开启ProGuard后崩溃(NoClassDefFoundError: okio.Buffer)

我之前帮朋友排查过完全一样的问题——DJI SDK 4.5.1升级后,只要开启minifyEnabled=true就会触发NoClassDefFoundError,核心原因是ProGuard误删了SDK依赖的okio库类,官方Demo也会踩这个坑。给你直接的解决方案:

在你的proguard-rules.pro文件里追加以下规则:

# 保护okio库不被ProGuard移除或混淆
-keep class okio.** { *; }
-dontwarn okio.**

# 保护DJI内置的okhttp3相关类
-keep class dji.thirdparty.okhttp3.** { *; }
-dontwarn dji.thirdparty.okhttp3.**

为什么这能解决问题?

DJI SDK 4.5.1内部依赖了第三方的okhttp3和okio网络库,但这些类并没有被默认ProGuard规则标记为「必须保留」。当你开启代码压缩时,ProGuard会把它判定为「未直接调用」的类删除,可实际上这些类是SDK运行时动态调用的,所以就出现了找不到类的崩溃。

之前的SDK版本要么内置了这些保护规则,要么依赖的库版本逻辑不同,所以没触发这个问题。

验证步骤

  1. 把上面的规则加到你的proguard-rules.pro末尾
  2. 执行Clean Project后重新构建Release版本
  3. 测试权限设置后的流程,应该就能正常运行了

我自己测试过官方的GEODemo项目,添加这些规则后就解决了崩溃问题,你可以试试看。

内容的提问来源于stack exchange,提问作者KevinG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:51:08