我正在创建一个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
答案 0 :(得分:0)
我一直与DJI保持联系,他们为我提供了有效的更新。
他们使用以下内容更新了他们的proguard文件:
-keep class okio.** { *; }
-keep class org.bouncycastle.** { *; }
他们从
改变了org.boundcycastle-keep,allowshrinking class org.bouncycastle.** { *; }
我之前写的内容。 (但保持两者都适合我)
/凯文