今天更改了android.jar,直接可用成果物从这里下载,如何更改看这里,之后提示了如下错误:

Could not resolve all files for configuration ':mdm:androidApis'.
Failed to transform android.jar to match attributes {artifactType=android-mockable-jar, org.gradle.libraryelements=jar, org.gradle.usage=java-runtime, returnDefaultValues=false}.
Execution failed for MockableJarTransform: D:\Program\Android\Sdk\platforms\android-30\android.jar.

来看看原因,提示MockableJarTransform错误,处理肯定在com.android.tools.build:gradle里,下载对应的版本就可以了,在这里搜索下载。

下载gradle的source(源码)和pom(源码的编译需要引入的库)。

解压source,搜索MockableJarTransform。

grep -rn MockableJarTransform *


代码比较简单,没几行,gradle的报错肯定就是因为它了,这么少的代码,自己创建java项目测试一下,可能的话修改下android.jar

去pom文件中查找MockableJarGenerator可能引入的库,

同样办法下载,下载source就够了:

找到MockableJarGenerator.java,前面导包就是路径。
把文件复制出来,之后要用,创建java项目把文件复制进去,有一堆报错:

去pom文件中找到对应的引用,在idea中添加上。


仿照MockableJarTransform代码创建个测试类:


运行下就发现报错了,这是肯定的,不报错as也不会编译不过。

重点来了,try一下就可以了,把使用不了class文件排除重新生成jar,Android Studio就可以识别了。

但是生成完之后发现,android.jar是能用了,但是里面少了很多文件,只能祭出我们的终极大法了,修改as编译jar,让它不校验android.jar。

修改MockableJarGenerator.java文件,将其中的处理全部删掉。方法是创建同包名,同方法名类文件,将方法体删掉,生成class文件替换进去:


替换的目标文件路径是gradle文件夹下的caches\modules-2\files-2.1\com.android.tools.build\builder 下的编译使用的版本下的jar包

替换的过程中要关闭as,替换之后重新sync就可以了。

测试项目地址

Execution failed for MockableJarTransform相关推荐

  1. 完美解决Error:Execution failed for task ':APP:transformClassesWithDexForDebug'...问题

    今天下载一个demo运行出现问题,错误如下图 我的问题是JDK 1.8 版本问题问题,我吧1.8改成1.7运行成功 这个实在app下面的build.gradle 相信大伙在Android开发过程中都避 ...

  2. 安卓中运行报错Error:Execution failed for task ':app:transformClassesWithDexForDebug'解决

    在androidstuio中运行我的未完项目,报错: Error:Execution failed for task ':app:transformClassesWithDexForDebug'. & ...

  3. Execution failed for task ':app:mergeDebugResources'.

    这个问题就是资源文件重名了, 它下面有提示的路径,根据路径找到位置, 最后把自己不小心帖进去的删除掉即可 大致如下 Execution failed for task ':app:mergeDebug ...

  4. Error:Execution failed for task ':app:dexDebug'. com.android.ide.common.process.ProcessException

    异常Log: Error:Execution failed for task ':app:dexDebug'.  > com.android.ide.common.process.Process ...

  5. cordova编译报错:Execution failed for task ':processDebugResources'

    cordova编译报错:Execution failed for task ':processDebugResources' 引发这个错误的最扩祸首就是一个中文命名的文件,不知道什么时候加入的,我写了 ...

  6. Error:Execution failed for task ':myapp:dexDebug'. com.android.ide.common.process.ProcessExcepti

    错误如题所示:Error:Execution failed for task ':myapp:dexDebug'. com.android.ide.common.process.ProcessExce ...

  7. 关于vs生成app错误提示,提醒Execution failed for task ':transformClassesWithDexForDebug'.

    昨天将vs和android SDK更新之后生成app之后发现app生成出错,报错如下: FAILURE: Build failed with an exception. * What went wro ...

  8. 解决方案:Error:Execution failed for task ‘:app:compileDebugAidl‘. > aidl is missing

    解决方案:Error:Execution failed for task ':app:compileDebugAidl'. > aidl is missing 参考文章: (1)解决方案:Err ...

  9. Android: Execution failed for task ':app:processDebugResources' 异常解决

    Android: Execution failed for task ':app:processDebugResources' 解决: sudo apt-get install -y lib32gcc ...

最新文章

  1. vivado的ip核使用-pll
  2. oracle sql MERGE 关键字
  3. NM-CIDS测试经历
  4. 高频小功率三极管-S9018
  5. mysql 内存引擎_MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)
  6. UA MATH564 概率论V 中心极限定理
  7. 如何设计一门语言(十)——正则表达式与领域特定语言(DSL)
  8. 支付宝红包强攻微信社交,臆想出来的豪门恩怨
  9. Java程序员必备基础:Java代码是怎么运行的?
  10. 【WebRTC---入门篇】(十二)WebRTC传输协议
  11. 【Pytorch神经网络基础理论篇】 05 矩阵计算
  12. lrange是取出所有值并移除么_图解双指针 | LeetCode 27. 移除元素
  13. python中怎么取整数案例题_python中如何取整数
  14. 动荡下如何自救 | 社招一年收割BATDK算法offer
  15. 听说你在做斗鱼APP?
  16. 某图书管理系统的类图
  17. python中flatten_Python中flatten用法
  18. (附源码)计算机毕业设计SSM基于框架的旅游管理系统
  19. 做到这些让你逃离奴隶的束缚
  20. java addservlet_servlet增删改查

热门文章

  1. 小程序真机调试提示系统错误
  2. Netty网络编程实战1,搭建第一个Netty服务器
  3. 华师计算机设计大赛,2017年广东大学生计算机设计大赛决赛选手手册-华南师范大学.PDF...
  4. MWC18丨世界移动大会正式开幕 5G先锋开启新征程
  5. 铁威马NAS中如何进行文件管理设置
  6. Mixly arduino nrf2401+对讲机制作
  7. iphone xr xs_如何在iPhone X,XS和XR上使用Animoji
  8. 自定义TextView实现渐变色边框,渐变色文字并绘制drawable
  9. Strip Comments
  10. DS1302可调时钟