使用Jar依赖项测试Android项目

7

我的Android项目有一些jar库依赖。单独编译,它能够正常工作。 我写了一个小测试项目,但是运行它没有得到任何结果(没有测试通过或失败),也没有任何错误,但是在logcat的输出中会出现以下警告:

06-06 14:55:43.533: INFO/dalvikvm(7049): 解析Lcom/adwhirl/adapters/InMobiAdapter类失败,接口315'Lcom/inmobi/androidsdk/InMobiAdDelegate;' 06-06 14:55:43.533: WARN/dalvikvm(7049): 'Lcom/adwhirl/adapters/InMobiAdapter;'类的链接失败 06-06 14:55:43.533: INFO/dalvikvm(7049): 解析Lcom/adwhirl/adapters/InMobiAdapter类失败,接口407'Lcom/inmobi/androidsdk/InMobiAdDelegate;' 06-06 14:55:43.533: WARN/dalvikvm(7049): 'Lcom/adwhirl/adapters/InMobiAdapter;'类的链接失败 06-06 14:55:43.553: DEBUG/dalvikvm(7049): GC_CONCURRENT已释放471K,内存占用率51%,剩余空间2880K / 5831K,外部0K / 0K,暂停2ms + 4ms 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): 无法加载类,请确保它在apk中。 类名:'com.adwhirl.adapters.InMobiAdapter'。 消息:com.adwhirl.adapters.InMobiAdapter 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): java.lang.ClassNotFoundException: com.adwhirl.adapters.InMobiAdapter 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at java.lang.Class.classForName(Native Method) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at java.lang.Class.forName(Class.java:234) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfoSource.createPackageInfo(ClassPathPackageInfoSource.java:89) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfoSource.access$000(ClassPathPackageInfoSource.java:40) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:51) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfoSource$1.load(ClassPathPackageInfoSource.java:48) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.SimpleCache.get(SimpleCache.java:31) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfoSource.getPackageInfo(ClassPathPackageInfoSource.java:73) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfo.getSubpackages(ClassPathPackageInfo.java:48) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfo.addTopLevelClassesTo(ClassPathPackageInfo.java:61) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.ClassPathPackageInfo.getTopLevelClassesRecursive(ClassPathPackageInfo.java:55) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.suitebuilder.TestGrouping.testCaseClassesInPackage(TestGrouping.java:154) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.suitebuilder.TestGrouping.addPackagesRecursive(TestGrouping.java:115) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.suitebuilder.TestSuiteBuilder.includePackages(TestSuiteBuilder.java:103) 06-06 14:55:43.553: WARN/ClassPathPackageInfoSource(7049): at android.test.InstrumentationTestRunner.onCreate(InstrumentationTestRunner.java:360) 06-06 14

如您所见,似乎存在导出库的问题,实际上每个库都会出现类似的错误。 我在这篇博客文章中读到,为了让它工作起来,只需在主项目中导出所有库即可,但对我来说并没有用。还有其他想法吗?


你是否解决了这个问题?我也尝试了建议的解决方案/博客,但仍然没有成功。 - dispake
建议的解决方案对我也不起作用。如果有关系的话,我的缺失库依赖于一个本地库(在我的主项目中无缝加载)。 - xverges
3个回答

16

前往使用.jar文件的项目(即测试项目)。点击右键 -> 属性 -> Java Build Path -> Order and Export -> 检查库文件

输入图片描述


我正在使用Maven遇到同样的问题。我需要做什么? - JohnyTex

2
我找到的解决方案是,在“排序和导入”部分将我的jar文件上移。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接