我正在开发一个Android应用程序库,它不使用本机代码(JNI)。我已尝试在我的Android项目中将库作为外部jar提供,但此方法不包含apk中的库内容,因此在模拟器或设备中运行时会抛出类未找到的错误。我也尝试将库创建为Android项目本身,这确实有效,但仅适用于公共静态属性(不是方法)。由于库和应用程序都在单独的apk中,我可以看到VM注意到对库的引用并且可以读取一些属性,但是当执行实例化库中的类的尝试时,即使我可以读取,也会找不到类来自它的公共静态属性(非常令人沮丧!!)。
我意识到Davlik字节代码与Java字节代码不同,但我甚至无法找到有关如何解决Android中看似非常简单的问题的良好信息。我现在正在查看旧的PlatformLibrary内容,但我不相信这样可以工作,因为样本已从Android站点中删除:(
如果可以,请帮助我,如果我在此之前找到答案,我会分享。
viva la Android!
答案 0 :(得分:4)
我尝试过将库提供为 我的Android项目中的外部jar 但这种方法不包括 apk中的库内容因而而来 运行时抛出类未找到的错误 在模拟器或设备中。
将JAR放入libs/
目录,它将自动包含在APK中。
我的一本书中的sample project显示了这种方式使用BeanShell JAR。此外,所有以my GitHub page上的“cwac-”开头的GitHub repos都是旨在通过libs/
目录构建JAR以包含在Android项目中的项目。