代码之家  ›  专栏  ›  技术社区  ›  Paul Gregoire

不基于jni的android共享库

  •  3
  • Paul Gregoire  · 技术社区  · 15 年前

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

    我意识到Davlik字节码与Java字节码不一样,但我甚至在找到如何解决Android中一个非常简单的问题的信息方面遇到了麻烦。我现在正在研究旧的平台库,但我也不相信这会起作用,因为这个示例已经从android站点中删除了:(

    如果你能帮我,如果我在这之前找到答案,我会和你分享的。

    安卓万岁!

    1 回复  |  直到 15 年前
        1
  •  4
  •   CommonsWare    15 年前

    我试着用晚餐招待图书馆 我的android项目中的一个外部jar 但这种方法不包括 APK中的库内容,因此 运行时引发类未找到错误 在模拟器或设备中。

    把罐子放进你的 libs/ 目录,它将自动包含在apk中。

    这个 sample project 从我的一本书中可以看出,用这种方式使用beanshell罐子。此外,所有以“cwac-”开头的github回购 my GitHub page 项目是否旨在通过 伦敦证券交易所/ 目录。