我的Android进阶之旅------>Android项目运行报java.lang.NoClassDefFoundError错误的解决办法

简介:     今天在运行一个Android项目的时候,报了以下错误: D/AndroidRuntime( 3859): Shutting down VME/AndroidRuntime( 3859): FATAL EXCEPTION: mainE/AndroidRuntime( 3859): Process: com.

    今天在运行一个Android项目的时候,报了以下错误:

D/AndroidRuntime( 3859): Shutting down VM
E/AndroidRuntime( 3859): FATAL EXCEPTION: main
E/AndroidRuntime( 3859): Process: com.runbo.outdoormeter, PID: 3859
E/AndroidRuntime( 3859): java.lang.NoClassDefFoundError: com.runbo.outdoormeter.LocationApplication$MyLocationListenner
E/AndroidRuntime( 3859):        at com.runbo.outdoormeter.LocationApplication.<init>(LocationApplication.java:23)
E/AndroidRuntime( 3859):        at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime( 3859):        at java.lang.Class.newInstance(Class.java:1215)
E/AndroidRuntime( 3859):        at android.app.Instrumentation.newApplication(Instrumentation.java:990)
E/AndroidRuntime( 3859):        at android.app.Instrumentation.newApplication(Instrumentation.java:975)
E/AndroidRuntime( 3859):        at android.app.LoadedApk.makeApplication(LoadedApk.java:502)
E/AndroidRuntime( 3859):        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4537)
E/AndroidRuntime( 3859):        at android.app.ActivityThread.access$1500(ActivityThread.java:151)
E/AndroidRuntime( 3859):        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1402)
E/AndroidRuntime( 3859):        at android.os.Handler.dispatchMessage(Handler.java:110)
E/AndroidRuntime( 3859):        at android.os.Looper.loop(Looper.java:193)
E/AndroidRuntime( 3859):        at android.app.ActivityThread.main(ActivityThread.java:5322)
E/AndroidRuntime( 3859):        at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 3859):        at java.lang.reflect.Method.invoke(Method.java:515)
E/AndroidRuntime( 3859):        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:829)
E/AndroidRuntime( 3859):        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:645)
E/AndroidRuntime( 3859):        at dalvik.system.NativeStart.main(Native Method)

          我就纳闷了,因为此项目我丢在Android系统源代码中去编译,完全正常运行不报错。导入到Eclipse中调试程序就直接给我报这错误,坑爹啊。 而这个MyLocationListenner是继承百度SDK中的
 com.baidu.location.BDLocationListener类,想来想去都想不出这错误报的所以然来。
而且在Eclipse视图中,完全没有任何提示说有错误,只是运行此APP就报错。如下图所示:

后来终于找到了解决方法,原来我丢在源代码中去编译的时候,Android.mk文件中,将这个jar包都加入进去了,都加载了所以不会报错。部分代码如下:
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := JAR_1:lib/android-support-v4.jar \
					JAR_2:lib/locSDK_3.3.jar


解决方法如下所示:

         1.项目根目录下新建一个libs文件夹

      2.把要加的包放到这个目录下

      3.右键 Build Path-> Use as source folder

      4.在jar包上右键->add to build path

    (注意,上面的是libs,不是lib

      

      如下图所示:

   好了,问题解决,需要注意的地方就是这样。



                 ====================================================================================

  作者:欧阳鹏  欢迎转载,与人分享是进步的源泉!

  转载请保留原文地址http://blog.csdn.net/ouyang_peng

====================================================================================


    
相关文章
|
3天前
|
XML Java 测试技术
从零开始学 Maven:简化 Java 项目的构建与管理
Maven 是一个由 Apache 软件基金会开发的项目管理和构建自动化工具。它主要用在 Java 项目中,但也可以用于其他类型的项目。
16 1
从零开始学 Maven:简化 Java 项目的构建与管理
|
13天前
|
Java Android开发
Eclipse 创建 Java 项目
Eclipse 创建 Java 项目
32 4
|
18天前
|
SQL Java 数据库连接
从理论到实践:Hibernate与JPA在Java项目中的实际应用
本文介绍了Java持久层框架Hibernate和JPA的基本概念及其在具体项目中的应用。通过一个在线书店系统的实例,展示了如何使用@Entity注解定义实体类、通过Spring Data JPA定义仓库接口、在服务层调用方法进行数据库操作,以及使用JPQL编写自定义查询和管理事务。这些技术不仅简化了数据库操作,还显著提升了开发效率。
30 3
|
21天前
|
前端开发 Java 数据库
如何实现一个项目,小白做项目-java
本教程涵盖了从数据库到AJAX的多个知识点,并详细介绍了项目实现过程,包括静态页面分析、数据库创建、项目结构搭建、JSP转换及各层代码编写。最后,通过通用分页和优化Servlet来提升代码质量。
38 1
|
2月前
|
JavaScript 前端开发 Java
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
这篇文章详细介绍了如何在前端Vue项目和后端Spring Boot项目中通过多种方式解决跨域问题。
360 1
解决跨域问题大集合:vue-cli项目 和 java/springboot(6种方式) 两端解决(完美解决)
|
28天前
|
JavaScript Java 项目管理
Java毕设学习 基于SpringBoot + Vue 的医院管理系统 持续给大家寻找Java毕设学习项目(附源码)
基于SpringBoot + Vue的医院管理系统,涵盖医院、患者、挂号、药物、检查、病床、排班管理和数据分析等功能。开发工具为IDEA和HBuilder X,环境需配置jdk8、Node.js14、MySQL8。文末提供源码下载链接。
|
2月前
|
Java Apache Maven
Java/Spring项目的包开头为什么是com?
本文介绍了 Maven 项目的初始结构,并详细解释了 Java 包命名惯例中的域名反转规则。通过域名反转(如 `com.example`),可以确保包名的唯一性,避免命名冲突,提高代码的可读性和逻辑分层。文章还讨论了域名反转的好处,包括避免命名冲突、全球唯一性、提高代码可读性和逻辑分层。最后,作者提出了一个关于包名的问题,引发读者思考。
Java/Spring项目的包开头为什么是com?
|
8天前
|
开发框架 前端开发 Android开发
安卓与iOS开发中的跨平台策略
在移动应用开发的战场上,安卓和iOS两大阵营各据一方。随着技术的演进,跨平台开发框架成为开发者的新宠,旨在实现一次编码、多平台部署的梦想。本文将探讨跨平台开发的优势与挑战,并分享实用的开发技巧,帮助开发者在安卓和iOS的世界中游刃有余。
|
13天前
|
搜索推荐 Android开发 开发者
探索安卓开发中的自定义视图:打造个性化UI组件
【10月更文挑战第39天】在安卓开发的世界中,自定义视图是实现独特界面设计的关键。本文将引导你理解自定义视图的概念、创建流程,以及如何通过它们增强应用的用户体验。我们将从基础出发,逐步深入,最终让你能够自信地设计和实现专属的UI组件。
下一篇
无影云桌面