Android共享库,不是基于JNI的

时间:2010-04-22 17:51:05

标签: java android

我正在开发一个Android应用程序库,它不使用本机代码(JNI)。我已尝试在我的Android项目中将库作为外部jar提供,但此方法不包含apk中的库内容,因此在模拟器或设备中运行时会抛出类未找到的错误。我也尝试将库创建为Android项目本身,这确实有效,但仅适用于公共静态属性(不是方法)。由于库和应用程序都在单独的apk中,我可以看到VM注意到对库的引用并且可以读取一些属性,但是当执行实例化库中的类的尝试时,即使我可以读取,也会找不到类来自它的公共静态属性(非常令人沮丧!!)。

我意识到Davlik字节代码与Java字节代码不同,但我甚至无法找到有关如何解决Android中看似非常简单的问题的良好信息。我现在正在查看旧的PlatformLibrary内容,但我不相信这样可以工作,因为样本已从Android站点中删除:(

如果可以,请帮助我,如果我在此之前找到答案,我会分享。

viva la Android!

1 个答案:

答案 0 :(得分:4)

  

我尝试过将库提供为   我的Android项目中的外部jar   但这种方法不包括   apk中的库内容因而而来   运行时抛出类未找到的错误   在模拟器或设备中。

将JAR放入libs/目录,它将自动包含在APK中。

我的一本书中的sample project显示了这种方式使用BeanShell JAR。此外,所有以my GitHub page上的“cwac-”开头的GitHub repos都是旨在通过libs/目录构建JAR以包含在Android项目中的项目。