首页 > 解决方案 > 无法将 Android AAR(带有 JNI 绑定)与 Jitpack 上的源关联

问题描述

使用 Gomobile,我们有一个aar格式的 Android 库,以及一个jar包含源代码的文件。

在 Android Studio 中使用该库将具有混淆的参数名称,这使得它难以使用。手动可以将源 jar 文件链接到aar库的使用者可以看到有意义的参数名称。

该库目前在 jitpack.io 上发布。我们的构建过程不涉及gradle,因为我们gomobile用来生成完成的 AAR,如下所示:

gomobile bind -target=ANDROID -o ../$OUTPUT -v

从这个命令我们得到Library.aarLibrary-sources.jar

在我们的jitpack.yml文件中,我们有特定的 Maven 安装命令来上传我们的 aar 和 jar 文件,例如:

install:
  - mvn install:install-file -Dfile=Library.aar -Dsources=Library-sources.jar -DgroupId=com.github.username -DartifactId=Library -DVersion=0.1.0 -Dpackaging=aar -DgeneratePom=true

通过转到存储库的 jitpack master-SNAPSHOT,我可以看到pom生成了一个文件,aar并且源代码jar都在线。

在 Android Studio 中,当我implementation 'com.github.username:Library:master-SNAPSHOT作为依赖项添加到我的应用程序模块时,aar下载得很好并且我可以使用它,但是源 jar 不存在。如果我在 IDE 中打开生成的 java 类,我可以看到从 jitpack 获取的字节码的反编译版本,并带有“下载源”选项。单击它不会执行任何操作。

如何通过 jitpack 将我的源 jar 与其 aar 关联起来。就此而言,有没有办法可以将源 jar 烘焙到 AAR 本身中?没有任何真正的 java 代码,只有一些native我们希望库的用户能够看到的带有参数名称的方法。

标签: androidmavenaarjitpackgomobile

解决方案


推荐阅读