然后我在apk中使用aar,如下所示: bulid apk后,jar的so无法打包到apk中:
这发生在android gradle插件7.4.0中
我在一个旧项目中使用了同样的方式,其中 android gradle 插件:'com.android.tools.build:gradle:3.5.3',然后就可以了,aar 中的 jar 可以打包到 apk 中: 我该怎么办,还有其他人遇到这个问题吗
先建一个aar,里面有一些jar,jar里有so库,然后把jar包放到aar的lib目录下
您的
.aar
文件的内容未正确集成到最终的 .apk
文件中,因为其结构违反了 .jar
、.aar
和 .apk
文件的结构规则。您可能对此概述感兴趣。
您的屏幕截图显示了一个
.aar
文件,其中有一个 libs
目录,其中包含一个 .jar
文件,该文件本身包含一个 lib
目录,其中包含包含 .so
文件的 ABI 特定目录。这是一个无效的构造。
那个
libs
目录包含 .jar
文件,这是正确的。但是这些 .jar
文件(作为 Java 类库)必须仅包含 .class
文件,而根本不包含本机库(.so
文件)。原生库必须放入名为 lib
的目录中(而不是 jni
——该名称只能在项目中使用,而不能在 .aar
或 .apk
文件中使用),正如您在其他 上看到的那样 你的。
因此请记住考虑 AAR 的一些要点:
(1) libs
目录包含
.jar
文件,其中 仅包含
.class
文件(以及一些清单内容,但这在这里并不重要)。(2) lib
目录包含本机共享库(
.so
文件),其子目录根据每个支持的硬件平台类型(ABI,因此 armeabi-v7a
、arm64-v8a
、x86
和/或 x86-64
)命名).