标签:noclassdeffounderror android dependencies android private libraries
今天调试andriod程序时,启动不起来后来看了logcat日志,
05-19 02:45:32.910: E/AndroidRuntime(2206): java.lang.NoClassDefFoundError: org.androidpn.client.PersistentConnectionListener
报了这个错误,网上寻求解决方案发现原来是ADT版本的问题
高版本的ADT只认识libs目录下的JAR包,所以需要把lib文件夹变成libs
高版本的ADT将JAR放到Android Private Libraries虚拟目录下
Android Dependencies虚拟目录是老版本的
Android Private Libraries:表示放在libs里面的jar包引用,视为私有引用。存放的是android私有的库(libs目录下的)。添加jar包到libs里面,系统自动把jar加载到android private libraries中;Private Libraries 就是libs里面的jar包的映射!你把libs中的jar包移除 Private Libraries中也就没有了。
在高版本里面,只要把第三方jar包拷贝到libs目录即可
android api向来是高版本兼容低版本,如api-8(android2.2)必会兼容api-4(android 1.6)
但是反之则不会,你使用2.2的平台版本build了一个apk,若想能在1.6上运行,则需要做向下兼容。
android support-xx是google官方的向下兼容包.
具体引入兼容包步骤
方法1:右击项目→选择Android Tools→Add Support Library…
方法2:
从你的Android SDK安装目录(例如,<sdk>/extras/android/support/v4/android-support-v4.jar)下拷贝JAR文件到你项目的libs/目录下。
Android Support v4: 这个包是为了照顾1.6及更高版本而设计的,这个包是使用最广泛的,eclipse新建工程时,都默认带有了。
Android Support v7: 这个包是为了考虑照顾2.1及以上版本而设计的,但不包含更低,故如果不考虑1.6,我们可以采用再加上这个包,另外注意,v7是要依赖v4这个包的,即,两个得同时被包含。
Android Support v13:这个包的设计是为了android 3.2及更高版本的,一般我们都不常用,平板开发中能用到。
参考博文:
http://blog.csdn.net/huzgd/article/details/8962702
本文出自 “一无所有-天行者” 博客,请务必保留此出处http://tianxingzhe.blog.51cto.com/3390077/1652748
标签:noclassdeffounderror android dependencies android private libraries
原文地址:http://tianxingzhe.blog.51cto.com/3390077/1652748