Ste*_*ing 4 eclipse android jar
在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
{...
Run Code Online (Sandbox Code Playgroud)
然后我右键单击我的新项目并使用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
Run Code Online (Sandbox Code Playgroud)
然后运行失败,因为要运行的类不存在.
当我构建原始项目时,我没有勾选方框" Mark this project as a library",这可能是问题所在吗?我不确定复选框有什么影响.如果这是问题,有没有办法回顾性地应用该操作,或者我必须创建一个完整的新项目并将我的包复制到其中,然后再使用它创建一个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
Run Code Online (Sandbox Code Playgroud)
这并不让我感到惊讶,NestedSettingsCommon.initialise是我的活动第一次调用我的Jar中的代码.
我也尝试从Eclipse中导出Jar而不是从命令行创建它.这没有任何区别.