我正在创建一个用于控制DJI无人机的android应用程序。我刚刚更新到DJISDK4.5.1,当我将构建变量设置为'Debug‘时,应用程序正在按预期工作。当我用'minifyEnabled‘改为'true’和一个proguard文件的“发布”版本时,应用程序在设置权限之后就会崩溃。如果我将“minifyEnabled”更改为“false”,则应用程序运行时不会出现任何错误。
应用程序在SDK4.5.1更新之前运行良好(使用“minifyEnabled”到“true”)
我检查了DJI的Mobile教程(https://github.com/DJI-Mobile-SDK-Tutorials/Android-GEODemo)是否存在相同的问题,并且在教程项目中将minifyEnabled更改为“true”时也会发生相同的错误。
我得到的错误如下:
java.lang.NoClassDefFoundError:失败的决议: Lokio/Buffer; 在dji.thirdparty.okhttp3.ResponseBody.create(Unknown源代码中) 在dji.thirdparty.okhttp3.internal.Util.(未知来源) 在dji.thirdparty.okhttp3.internal.Util.immutableList(Unknown源代码)在dji.Thidparty.okhttp3.OkHttpClient(未知源) 由: java.lang.ClassNotFoundException:没有找到路径上的类"okio.Buffer“:DexPathList[zip file "/system/framework/com.android.future.usb.accessory.jar",]引起的
我在他们的教程项目中使用了proguard文件DJI,其中我添加了一些额外的行(https://github.com/DJI-Mobile-SDK-Tutorials/Android-GEODemo/blob/master/GEODemo/app/proguard-rules.pro)
所有的东西都指向了Pro卫兵文件,但是我的想法已经用完了,这就是我来这里寻求帮助的原因。)
向KevinG问好
发布于 2018-05-30 08:30:37
我一直在与DJI联系,他们为我提供了一个有效的更新。
他们以下列方式更新了他们的前卫档案:
-keep class okio.** { *; }
-keep class org.bouncycastle.** { *; }他们把org.boundcycastle从
-keep,allowshrinking class org.bouncycastle.** { *; }我之前写的东西。(但让这两个人都为我工作)
/Kevin
https://stackoverflow.com/questions/50579591
复制相似问题