DJI SDK 4.5.1发布版本崩溃

时间:2018-05-29 08:22:49

标签: java android mobile android-proguard dji-sdk

我正在创建一个Android应用程序来控制DJI无人机。 我刚刚更新到DJI SDK 4.5.1,当我将构建变量设置为'Debug'时,应用程序正在按预期工作。 当我使用'minifyEnabled'更改为'Release'版本为'true'和proguard文件时,应用程序在设置权限后崩溃。 如果我将'minifyEnabled'更改为'false',那么应用程序运行时没有任何错误。

应用程序在SDK 4.5.1更新之前工作得很好('minifyEnabled'变为'true')

我检查了DJI的Mobile SDK教程(https://github.com/DJI-Mobile-SDK-Tutorials/Android-GEODemo)是否有同样的问题,并且在教程项目中将minifyEnabled更改为'true'时会出现同样的错误。

我得到的错误如下:

  

java.lang.NoClassDefFoundError:解析失败:Lokio / Buffer;
  at dji.thirdparty.okhttp3.ResponseBody.create(Unknown Source)
  在dji.thirdparty.okhttp3.internal.Util。(未知来源)
  at dji.thirdparty.okhttp3.internal.Util.immutableList(Unknown Source)   在dji.thirdparty.okhttp3.OkHttpClient。(未知来源)
  在dji.thirdparty.okhttp3.OkHttpClient $ Builder。(未知来源)   引起:java.lang.ClassNotFoundException:没找到类   路径上的“okio.Buffer”:DexPathList [[zip文件   “/system/framework/com.android.future.usb.accessory.jar”,]](更多   zip文件参考)

我正在使用DJI在他们的教程项目中使用的proguard文件,其中我添加了一些额外的行(https://github.com/DJI-Mobile-SDK-Tutorials/Android-GEODemo/blob/master/GEODemo/app/proguard-rules.pro

所有内容都指向了proguard文件,但我的想法已经用完了,这就是为什么我来这里寻求帮助=)

最诚挚的问候 KevinG

1 个答案:

答案 0 :(得分:0)

我一直与DJI保持联系,他们为我提供了有效的更新。

他们使用以下内容更新了他们的proguard文件:

-keep class okio.** { *; }
-keep class org.bouncycastle.** { *; }

他们从

改变了org.boundcycastle
-keep,allowshrinking class org.bouncycastle.** { *; }

我之前写的内容。 (但保持两者都适合我)

/凯文