android - 无法将 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.aar
和Library-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
我们希望库的用户能够看到的带有参数名称的方法。
解决方案
推荐阅读
- javascript - 根据数据库中的产品过滤购物车项目
- ruby-on-rails - 如果在 1 个月内未通过验证,如何删除时事通讯订阅者?
- node.js - NodeJS 错误:在 TLSWrap.onStreamRead 读取 ECONNRESET (internal/stream_base_commons.js:183:27
- matlab - 为什么当我使用显式 FDM 更改 2D 瞬态热传导的总时间“t”时温度“T”没有变化?
- typescript - 这是错误堆栈: TypeError: XXX_1.Foo is not a constructor, as runtime (compiles fine)
- javascript - 计算使用 discord.js 发送消息的次数
- c# - 使用表达式树在运行时生成快速排序函数
- plsql - 如何防止互惠的主键-外键关系?
- python - 通过python pandas发送后无法打开Excel文件
- javascript - HTTP 调用由于另一个方法调用而被取消,如何强制阻止第二次调用,直到收到 HTTP 响应?