Eclipse和MyEclipse使用User library,可以方便管理和引用自己定义的 Library 库,但是今天在android学习中,项目中引用自定义的commons-lang的Library后,在模拟器中运行出现ClassNotFound异常,原因很明显,发布到模拟器的时候没有将User Library中的jar打包到apk文件中,但是为什么没有打包进去呢。
和Google沟通良久,觉得问题可能出现在 .classpath 文件上
原 .classpath
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/commons-lang3-3.2.1"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry exported="true" kind="con" path="org.eclipse.jdt.USER_LIBRARY/commons-lang3-3.2.1"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
运行结果证明猜想是正确的
另测试,即使把User Library设置成System Library也会这样哦~