为什么我的类链接无法将jar导入Eclipse中的Android项目?

Eclipse中,我编写了一个用于Android的类包,并在android项目中测试它们,将测试代码保存在第二个包中.然后我使用命令行从项目的bin / classes目录中的所有casses创建一个jar文件(仅适用于我的库包,而不是测试包).运行“jar tf”显示所有类正确地以我的包名称为前缀.

然后我创建了另一个Android项目,其中包含导入我的第一个包并使用这些方法的活动,如下所示:

import uk.me.stevewaring.nestedsettings.NestedSettingsCommon;
import uk.me.stevewaring.nestedsettings.NestedSettingsReformat;
public class ShowNestedSettings extends Activity implements NestedSettingsReformat
{...

然后我右键单击我的新项目并使用Build Path添加我的jar.我的jar显示在Libraries下的java构建路径的顶部,以及Order和Export下的底部.

一旦我添加了我的罐子,所有来自lint的红色波浪线抱怨我包装中的方法消失了.

但是,当我尝试调试我的项目时,在LogCat中我得到:

04-27 05:45:44.180: I/dalvikvm(14576): Failed resolving Lcom/example/shownestedsettings/ShowNestedSettings; interface 553 'Luk/me/stevewaring/nestedsettings/NestedSettingsReformat;'    
04-27 05:45:44.210: W/dalvikvm(14576): Link of class 'Lcom/example/shownestedsettings/ShowNestedSettings;' failed

然后运行失败,因为要运行的类不存在.

当我构建原始项目时,我没有勾选“将此项目标记为库”,这可能是问题所在吗?我不确定复选框有什么影响.如果这是问题,有没有办法回顾性地应用该操作,或者我必须创建一个完整的新项目并将我的包复制到其中,然后再使用它创建一个jar.如果那不是问题,那么我做错了什么?

更多的信息:
我删除了接口的实现,然后当我尝试调试时,我收到了这个:

04-27 05:52:10.919: I/dalvikvm(14677): Could not find method uk.me.stevewaring.nestedsettings.NestedSettingsCommon.initialise, referenced from method com.example.shownestedsettings.ShowNestedSettings.onCreate
04-27 05:52:10.949: W/dalvikvm(14677): VFY: unable to resolve static method 3566: Luk/me/stevewaring/nestedsettings/NestedSettingsCommon;.initialise (Landroid/app/Activity;)V
04-27 05:52:10.949: D/dalvikvm(14677): VFY: replacing opcode 0x71 at 0x0003

这并不让我感到惊讶,NestedSettingsCommon.initialise是我的活动第一次调用我的Jar中的代码.

我也尝试从Eclipse中导出Jar而不是从命令行创建它.这没有任何区别.

最佳答案
确保将JAR设置为随应用程序一起导出:

项目>属性> Java构建路径>订单和出口

转载注明原文:为什么我的类链接无法将jar导入Eclipse中的Android项目? - 代码日志