问题标签 [apklib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
maven - 获取具有本机依赖项的 android maven 库以在 gradle 和 maven 项目中工作
我整天都在用头撞墙,试图弄清楚这一点。我正在尝试创建一个 android 库 X 作为 aar 和 apklib。这样做的原因是我们有一个使用 android maven 插件构建的 android 应用程序并且应该使用 apklib,但是其他人将在项目 Z 中使用该库,使用 gradle,因此需要 aar。
我正在尝试构建的库具有本机依赖项,我们在让该库为这两个项目工作时遇到了严重的问题。根据我们如何更改库 X 的 pom 文件,一个或另一个失败。
让我给出一些伪构建文件的更多上下文,不幸的是我不能分享原始文件。
库 X 的 pom.xml,使用 android maven 插件构建
打包为 apklib 的库 X 将作为依赖项添加到 maven 项目中,如下所示:
Maven 项目 Y,pom.xml:
Gradle项目Z,引用库X打包为aar,build.gradle:
鉴于此配置,我们获得的结果是一个正在运行的 maven 项目 Y,它似乎可以毫无问题地解决本机依赖关系,因为 .so 包含在生成的 apk 中。但是,gradle 项目 Z 构建良好,但无法在运行时找到 .so 依赖项。当我探索为库 X 生成的 apklib/aar 时,.so 库不存在。不知何故,maven 项目 Y 知道如何处理这种传递依赖,并且本机库将其转换为生成的 apk,但 gradle 项目无法这样做,并且共享库不会将其放入生成的 apk。
让具有本机依赖项的库在 gradle(作为 aar)和 maven(作为 apklib)项目上工作的正确方法是什么?有什么方法可以强制 maven 在生成的 apklib/aar 中包含本机工件?
希望我已经足够清楚了,我愿意就如何改进这个问题提出建议。谢谢!
android - maven构建我的项目时无法从库项目的jar中找到类
我已经下载了一个 3rd 方 Android 库项目,该项目不包含 java 类文件,但文件夹下有一个jarlibs/
文件:
这个库项目可以构建为apklib存档。我构建了它并已将此存档安装到我的本地 maven 存储库中。
然后在我自己的Android项目中,添加了这个apklib项目的依赖:
在我的 Java 代码中,我使用了CustomService.jar中的类,但是当我构建我的项目时,我经常收到以下错误:
上述错误抱怨它无法UserService
从库 apklib 存档中找到该类。然后,我通过命令检查了库 jar 文件的内容:
jar tf CustomService.jar
我看到该类在库项目的CustomService.jar中
这个类在罐子里,为什么我得到错误呢????