当我在Android手机上运行我的应用程序时,我在Android Studio中不断收到此错误。我花了几周的时间来修复它,并采取了以下措施:
添加了要添加的android名称
android:name="android.support.multidex.MultiDexApplication"
添加了源兼容性,如下所示:
compileOptions
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
已声明带有其他类列表的proguard + multidex文件
通过在存储库中添加url来更改根级别gradle文件,然后更改了调用存储库的顺序
更新了android IDE和android studio,android sdk平台工具。 gradle构建文件
将所有库从.idea / libs文件夹复制到GSDemo / apps / libs文件夹
在项目根目录中创建一个新的libs文件夹,并将所有库的jar文件复制到其中
禁用即时运行
将代码从java子文件夹移动到src文件夹
无效的缓存/重新启动
以下是我得到的错误:
java.lang.NoClassDefFoundError: Failed resolution of:
Ldji/common/mission/waypoint/WaypointMissionFinishedAction;
at googlemap.gsdemo.dji.com.gsdemo.MainActivity.(MainActivity.java:81)
at java.lang.Class.newInstance(Native Method)
at android.app.Instrumentation.newActivity(Instrumentation.java:1086)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2843)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3049)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1646)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6836)
at java.lang.reflect.Method.invoke(Native Method)
答案 0 :(得分:0)
NoClassDefFoundError::表示您的手机在其他版本的android(例如32位或64位)上运行,您需要在android项目中添加 jniLibs 文件夹。
在jniLibs文件夹中搜索更多内容。
答案 1 :(得分:0)
由于您使用的Proguard规则,似乎未导入SDK文件或将其删除。
包含SDK的最简单方法是将导入添加到build.gradle中,如下所示:
compile 'com.dji:dji-sdk:4.6'
provided 'com.dji:dji-sdk-provided:4.6'
您可以尝试关闭Proguard进行测试,如果没有得到例外,它将指向Proguard规则。
希望其中之一会有所帮助。