使用Mark Murphy的MergeAdapter时,一切都可以正常编译,但是当ListView绑定发生时,调用addAdapter()方法时出现以下错误,导致崩溃:java.lang.NoClassDefFoundError: com.commonsware.cwac.sacklist.SackOfViewsAdapter
SackOfViewsAdapter jar文件确实存在于cwac-merge项目的libs目录中。
我已经签出了该项目随附的演示项目,尽管尝试运行该项目时遇到NoClassDefFoundError异常,但我看不到它没有的任何内容。
我感觉这是一个Eclipse配置问题,但是我已经尝试了所有我能想到的东西。
有任何想法吗?
**更新:SackOfViewsAdapter在cwac-merge项目中也显示为引用的库。
**更新2:我的.classpath:
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="lib" path="/Users/colsen/Projects/android/cwac-merge/libs/CWAC-SackOfViewsAdapter.jar"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
**更新3-将SackOfViewsAdapter复制到本地libs目录。
<classpath>
<classpathentry kind="lib" path="libs/CWAC-SackOfViewsAdapter.jar"/>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>
最佳答案
SackOfViewsAdapter jar文件确实存在于cwac-merge项目的libs目录中。
看起来您还需要使用SackOfViewsAdapter.jar
将MergeAdapter
添加到项目的Eclipse构建路径中。即使库项目对此的引用在编译时起作用,但在运行时将不起作用。
我刚刚更新了demo/
Eclipse项目文件来反映这一点。
我为此感到抱歉。