kjo*_*bro 75 android noclassdeffounderror
我的用户经常遇到错误.应用程序在启动期间崩溃.当应该加载MainActivity时,VM显然无法找到该类.我无法弄清楚为什么.该应用程序的体系结构是我的免费和专业版都使用的共同项目.不知道它是否相关.请参阅下面的堆栈跟踪.有什么想法吗?
java.lang.NoClassDefFoundError: com.android.common.MainActivity
at com.mycompany.myapp.Splash.onCreate(Splash.java:23)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1615)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1667)
at android.app.ActivityThread.access$1500(ActivityThread.java:117)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:935)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3687)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:842)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.android.common.MainActivity in loader dalvik.system.PathClassLoader[/system/framework/com.google.android.maps.jar:/data/app/com.android.pro-1.apk]
Run Code Online (Sandbox Code Playgroud)
编辑:
感谢下面的评论,理查德.现在我已经改变com.android.Splash了别的东西.反正它不是真正的类名.我的错...!
Sab*_*abo 125
我有同样的问题,我做了以下修复问题.
gen - 项目中的自动代码(来自依赖项和引用)
src - 项目中的源代码
没有必要重新启动Eclipse.它刚刚开始工作.
老实说,我从未尝试过"Android工具>修复项目属性",有时它可能会做同样的事情.我不知道,我刚刚看到错误信息之后做了以上,认为构建路径有问题.
编辑
后来这还不够,我再次收到错误.然后我"检查"了该视图中列出的所有依赖项.现在再次运作.到现在为止还挺好.如果再次失败,我会保持更新.
仅供参考:在我的最后一次尝试中,我尝试了"Android工具>修复项目属性",但它对我来说无效.
Dan*_*OMS 18
我目前正在使用SDK 20.0.3,之前的解决方案都不适用于我.
我能够把事情搞定
这带来了这个创建的Java类文件,这些文件是在构建Android项目时为Dalvik VM而不是Java VM编译的.这允许Android库jar文件中的Java类文件在创建Android项目.apk时通过dexing.现在,当应用程序运行时,发现Java项目类而不是抛出Java.lang.NoClassDefFoundError.
如果您想使用jar文件而不是链接源,那么您将需要创建一个Library Android项目.(在属性 - > Android中选中了'是库'的Android项目.)然后,您需要将Java项目的源链接到Android库项目,如上所述,或者从'src'文件夹中复制源文件. Java项目到Android库项目的'src'文件夹.构建Android库项目.然后,您将能够将创建的Android项目jar文件复制到Android文件夹的"libs"文件夹中,因为在构建Android项目时,其中的类文件是为Davlik VM而不是Java VM编译的.这允许Android库jar文件中的Java类文件在创建Android项目.apk时通过dexing.
小智 17
尝试转到项目 - >属性 - > Java构建路径 - >订单和导出,并确保为您的项目和您正在使用的所有其他库项目检查Android私有库.我通过以下链接NoClassDefFoundError Android Project得到了解决方案?
为了防止有人,我遇到了同样的问题.我的jar文件位于libs目录下,jar被添加到构建路径中.仍然是抛出这个例外.
我刚刚清理了项目,它对我有用.
Eclipse - >项目 - >清理 - >选择项目并清理
我使用java.nio.charset.StandardCharsets时遇到了这个NoClassDefFoundError.
原因是StandardCharsets直到JRE 1.7才存在.如果我将java编译版本设置为1.7,Eclipse抱怨"Android需要编译器合规级别5.0或6.0".所以,我通过右键单击项目名称 - > Android工具 - >修复项目属性来修复它.它是用JRE1.6编译的.
但是,因为StandardCharsets直到1.7才存在.它在我运行时报告了NoClassDefFoundError.
在尝试了很多其他方法(包括重新安装JDK)之前,我还没有意识到这一点.NoClassDefFoundError的含义清楚地说明了真正的原因:虽然它通过了编译,但在运行时无法找到该类.
一般的结论是,只要Android不能与JRE 1.7一起使用,如果使用自1.7以来提供的任何新功能,您将遇到此错误.
我的解决方案是我将这些源代码复制到我的代码中!
| 归档时间: |
|
| 查看次数: |
106426 次 |
| 最近记录: |