关于Androidstudio AOP AspectJ 我出现的问题
先是错误
Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.
> Unexpected scopes found in folder 'C:\Users\Administrator\Desktop\AOPDemo\app\build\intermediates\transforms\AspectTransform\debug'.
Required: PROJECT, SUB_PROJECTS, EXTERNAL_LIBRARIES.
Found: EXTERNAL_LIBRARIES, PROJECT, PROJECT_LOCAL_DEPS, SUB_PROJECTS, SUB_PROJECTS_LOCAL_DEPS
只想解决方法的话 请点击这里
想弄明白原因的话 请继续向下看
起因是昨天想在项目里加上面向切面编程 (还是我太懒想着方便) 就使用了AspectJ
还是和以前一样 在网上找依赖的路径
classpath 'com.hujiang.aspectjx:gradle-android- plugin-aspectjx:1.0.8'
apply plugin: 'android-aspectjx'
compile 'org.aspectj:aspectjrt:1.8.9'
等等等等
不要吐槽我发的乱七八糟 这些都没用
稍安勿躁 继续向下看
引用成功以后 就报了刚才发的那个错了
这是啥错呀 ???一脸懵逼
用百度翻译一下
意外的范围在文件夹???
什么鬼(翻译有风险 使用请谨慎)
问了英语好的朋友
这些叫作用域
需要: PROJECT, SUB_PROJECTS, EXTERNAL_LIBRARIES.
在我的项目里发现了: EXTERNAL_LIBRARIES, PROJECT, PROJECT_LOCAL_DEPS, SUB_PROJECTS, SUB_PROJECTS_LOCAL_DEPS
也就是说 我的项目多了
PROJECT_LOCAL_DEPS, SUB_PROJECTS_LOCAL_DEPS
这俩 作用域空了
多了 那就删了呗
于是到我这个目录下一找
app\build\intermediates\transforms\AspectTransform\debug’.
果然是 有这些
那么问题来了 怎么办?
app目录下全是系统的东西 不敢动呀
(其实我改了 然后自动编译出乱七八糟更多的东西了)
所以删是不行了 还有什么方法呢?
感觉 是不是我gradle版本的兼容的问题呀?
于是 搜到了一个大神分享的迁移到Android Studio 3.0的详解
有这句话
项目间发布
库模块不再处理本地 jar。这是为了加速由对库模块代码的更改而导致的增量生成。 现在, 对库模块的转换只会影响项目范围。使用 PROJECT_LOCAL_DEPS 应用转换将失败, 因为此范围现在已被弃用。 对于其本地 jar 是外部流的一部分的 app 模块, PROJECT_LOCAL_DEPS 和 SUB_PROJECT_LOCAL_DEPS 流现在总是空的。 为本地库模块启用混淆不再影响库的代码。相反, 您应该在使用该库的 app 模块上运行混淆。 以前, 必须在库模块中解析库模块与其本地 JAR 依赖项之间的 Java 资源冲突。由于库模块不再处理本地 jar, 因此必须解决使用该库的应用程序模块中的冲突。
原来是我更新Androidstudio3.0以后
PROJECT_LOCAL_DEPS 和 SUB_PROJECT_LOCAL_DEPS这俩空了啊
库模块不再处理本地 jar?
之前的方式需要处理本地jar
只要不用 apply plugin: ‘android-aspectjx’
这种依赖方式不就可以了么
以下是另一个网友的分享 有demo 照着做就可以了
链接
这里只针对这个问题 给出解决方法 避免踩坑