广西南宁网站推广,株洲网站开发公司,网络营销课程培训,wordpress搬家后分类打不开生成 AAR 包
在Android Studio Terminal 窗口输入以下命令#xff1a;
./gradlew :monitor:assembleRelease把 monitor 换成你子模块的名称#xff0c;不出意外的话 就会在下面目录生成相应aar文件
注意#xff1a;如果你的Java运行环境是Java 8 则在老一点的AS上 可以运…生成 AAR 包
在Android Studio Terminal 窗口输入以下命令
./gradlew :monitor:assembleRelease把 monitor 换成你子模块的名称不出意外的话 就会在下面目录生成相应aar文件
注意如果你的Java运行环境是Java 8 则在老一点的AS上 可以运行打包成功在较新一点的AS上会打包报错主要是新的AS要求的环境变量 都Java 11 以上了可以考虑配个环境再打包或者使用较旧的AS如 2021版本的。
到这里没什么压力
这时你会发现aar包并不大甚至只有几十kb如果你的子moudle 没使用第三方依赖的话你会发现使用时没什么问题如果有第三方依赖的话它还是不大甚至编译期也不会报错 但你运行时就会报错依赖找不到。
其实你在打aar包的时候并没有把第三方库 打包进去这还搞个
不要慌继续往下看
将远程依赖打包进aar中
介绍下我们的主角fat-aar-android 链接如下
https://github.com/kezong/fat-aar-android?tabreadme-ov-file 一个gradle插件它可以将依赖项合并到最终的aar文件中并与agp3 .一起工作 由于作者不维护了最终支持版本为 AGP 3.0 - 7.1.0和 Gradle 4.9 - 7.3
在新项目上会报错这不是重点还是有大佬fork版本呢
下面这个库还在继续维护gradle 版本大于 4.9 - 7.3 可以使用这个库
https://github.com/aasitnikov/fat-aar-android 我照着使用文档搞的好像报错了就按着example代码写的好家伙源码的和说明文档的写法不一样懵了就试着搞了一下编译通过如过你照着使用文档弄可以通过的话就忽略下面代码把
Step 1: 将下面的代码段添加到root build中:
就是你项目的根build.gradle文件不是app下的哦
buildscript {repositories {mavenCentral()google()jcenter()maven { url https://plugins.gradle.org/m2/ }}dependencies {classpath com.github.kezong:fat-aar:1.3.8}
}plugins {id com.android.application version 7.0.2 apply falseid com.android.library version 7.0.2 apply falseid org.jetbrains.kotlin.android version 1.8.0 apply false
}这个文件原本只有 plugins 块把 buildscript 放进去就行
Step 2: 添加插件 在你想要打包的子Moudle 的build.gradle 中 添加 id com.kezong.fat-aar
plugins {id com.android.libraryid com.kezong.fat-aar
}也有可能你项目是这种写法apply plugin: com.kezong.fat-aar 都一样
Step 3: Embed 依赖 就是把你引入的第三方依赖 从 implementation xxx 换成 embed xxx 效果如下
dependencies {implementation androidx.appcompat:appcompat:1.4.1implementation com.google.android.material:material:1.5.0implementation androidx.constraintlayout:constraintlayout:2.1.3testImplementation junit:junit:4.13.2androidTestImplementation androidx.test.ext:junit:1.1.3androidTestImplementation androidx.test.espresso:espresso-core:3.4.0embed com.lzy.net:okgo:3.0.4// ffmpegembed com.arthenica:ffmpeg-kit-full:6.0-2embed com.arthenica:smart-exception-java:0.2.1 embed com.arthenica:smart-exception-common:0.2.1// utilembed com.blankj:utilcodex:1.31.1// gsonembed com.google.code.gson:gson:2.8.6
}然后运行上面 生成 AAR 包 的指令就会看下像下面的打印
[fat-aar][embed detected][aar]com.lzy.net:okgo:3.0.4
[fat-aar][embed detected][aar]com.arthenica:ffmpeg-kit-full:6.0-2
[fat-aar][embed detected][aar]com.blankj:utilcodex:1.31.1然后 BUILD SUCCESSFUL 你会发现aar包 比原来胖了一圈不出意外你就可以拿着aar包 愉快地玩耍了
当然不出意外是不可能的导入 运行 啪 又报错♂️
看log又是相关类找不到。我不是都打包进去了吗怎么还找不到
以上面 com.arthenica:ffmpeg-kit-full:6.0-2举例
如果要在项目中依赖的话确实没什么问题因为它如果依赖了别的文件的话会自动下载的而打包成aar文件它就不会下载了这时候就缺少了相关文件怎么办呢分析吧
打开External Libraries文件夹可以看到 多了 exception-java 和 exception-common 这两个库 把这两个库 像上面Step 3 那样 放进去就行了然后再回到最初 生成 AAR 包
关机 跑路 一气呵成 emm… 跑题了
编译 运行 啪成了特属予作文以记之。