Android 删除aar中的一个类 aar包冲突 aar类冲突 删除aar中的一个包
Duplicate class com.xxxa.naviauto.sdk.listener.OnChangeListener found in modules jetified-xxxa-sdk-v1.1.2-release-runtime (:xxx-sdk-v1.1.2-release:) and jetified-xxxb-sdk-1.1.3-runtime (:xxxb-sdk-1.1.3:)
A.aar B.aar 有类冲突;
使用 exclude 排除本地aar无效;
所以要删除其中一个aar中导致冲突的包或类;
直接解压aar然后再解压jar,删除冲突的类后 ,再使用指令打包jar和aar;
一定要使用指令打包jar和aar,zip改后缀成aar或jar是不可以的;
1:解压 AAR 文件
AAR 文件本质上是一个压缩包,你可以使用解压工具或者命令行工具将其解压:
unzip yourlibrary.aar -d yourlibrary_extracted
这里的 yourlibrary.aar
是你要处理的 AAR 文件,yourlibrary_extracted
是解压后的目录。
2:删除指定类
解压完成后,找到包含类文件的 classes.jar
文件,它一般位于解压目录中。把 classes.jar
解压,然后删除你想移除的类文件
cd yourlibrary_extracted
unzip classes.jar -d classes
# 删除指定类,例如 com/example/YourClass.class
rm classes/com/example/YourClass.class
# 删除指定的包,例如 com/example/package
rm -r classes/com/example/package
3. 重新打包 classes.jar
删除指定包之后,需要重新打包 classes.jar
文件。
cd classes
jar cvf ../classes.jar .
cd ..
4. 重新打包 AAR 文件
最后,将修改后的文件重新打包成 AAR 文件。
zip -r new_aar_file.aar .
这里的 new_aar_file.aar
是重新打包后的 AAR 文件。