android 修改aar-实践

使用github上的第三方,但是有些方法是不公开的,这就导致无法继续使用
于是通过修改aar的方式来解决这种问题

感谢大佬!写的太详细太清楚了,作为菜鸟的我居然在这篇教程下成功实现,为此困惑了两天,这两天尝试将此Module进项目,也尝试使用jar包,但是都是在一片爆错中以失败告终!!!
太感谢这位大大了!
这就是大大的文
Android aar 修改

这里我的需求是使用了一个第三方开源的播放视频库

  1、首先通过gradle依赖进来
  2、找到保存的arr(一般在C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\第三方名)
  3、找到你要修改的aar中的类,复制该类的包名,在app\src\main\java\新建包名,复制要修改类内容进去
  4、找到aar文件,进去里面classes.jar,找到同名前缀一致的文件删除
  5、把gradle中的依赖去掉,否则汇报重复类的错误;把aar拷贝进project,放在app\libs\
  6、根据你的需求进行修改
  7、根据需求修改之后,可选择不做处理;也可以选择将修改后的类再压回aar中去
  8、选择压回去的话,记得是编译成功,成功才会有;找到app\build\intermediates\javac\debug\一直点找到你修改同名的类,右键Show in Explorer,全部复制,放到classes.jar包中
  9、此时需要把之前添加的aar删除,注意这里需要在顶部菜单栏的Build中选择Clean Project,再Rebuild Project之后才能将新的aar添加进来,否则读取的还是之前的aar
  10、将app\src\main\java\新建包名 删除,因为内容已经在aar中了,不删除也不会调用这里的

到此就解决了一些无法引用的问题!
这里还有一点要注意的就是在修改的过程中,如果你有一些头文件报错的话,可以在gradle中再将第三方库加回来,看看引用了什么,根据名字,可以在gradle添加依赖,也可以找到aar包一起放到libs下面

遇到的错误
LazyConfigurationUsageContext
Cause: org/gradle/api/internal/java/usagecontext/LazyConfigurationUsageContext
android 修改aar-实践
android 修改aar-实践
一大片的错误
Caused by: java.lang.reflect.InvocationTargetException 错误
android 修改aar-实践

工具
bandizip 上面提到的大大推荐的压缩工具
everything 这个工具很好使,是针对电脑Windows系统所打造的文件搜索工具

文章
Android之使用studio修改第三方jar源文件
Android库文件jar与aar的区别及用法
Iterator主要有三个方法:hasNext()、next()、remove()详解

上一篇:Android 将项目中的某Module打包成aar


下一篇:UnityPlayerActivity删除后的后果