AS 2.0 开启Instant Run出现的问题:Error:Access to the dex task is now impossible, starting with 1.4.0

来源:互联网 发布:零基础入门学python 编辑:程序博客网 时间:2024/06/06 06:48

转自: http://blog.csdn.net/qq_23191031/article/details/50582691


 使用Android Studio 2.0 引入老项目时,在开启Instant Run时候会出现这样的问题:

<code class="hljs livecodeserver has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">Error:Access <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">to</span> <span class="hljs-operator" style="box-sizing: border-box;">the</span> dex task is now impossible, starting <span class="hljs-operator" style="box-sizing: border-box;">with</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.4</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span> <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">1.4</span><span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">.0</span> introduces <span class="hljs-operator" style="box-sizing: border-box;">a</span> <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">new</span> Transform API allowing manipulation <span class="hljs-operator" style="box-sizing: border-box;">of</span> <span class="hljs-operator" style="box-sizing: border-box;">the</span> .class <span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">files</span>.  See more information: <span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">http</span>://tools.android.com/tech-docs/<span class="hljs-built_in" style="color: rgb(102, 0, 102); box-sizing: border-box;">new</span>-build-<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">system</span>/transform-api</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li></ul>

  这个问题困扰了我好久,终于有了答案。

  对于使用 gradle 2.2.1至2.9 版本的项目是无法使用Instant Run的,原因在于 Instant Run 需要使用 2.0.0的 Android Gradle Plugin:(现在2.0.0还是 alpaha 版)

现在2.0.0还是 alpaha 版

  但是,Android Gradle Plugin 从1.5.0开始就完全取消了Transform API,老项目还是使用了这个API,已至于项目更新后会报上文的错误。 
  详见官方文档(vpn)

  而从官方文档得知,使用 2.0.0的Android Gradle Plugin版本是支持1.5.0 的Android Gradle Plugin版本地,而不支持1.3.1以下版本 
  Gradle官方文档(vpn) 
Android Gradle 与 Gradle 的依赖关系 
换句话说就是目前为止只有使用的是 1.5.0 版本的项目才可以开启 Instant Run,而使用1.3.1及以下版本的项目与无法开启Instant Run

而官方也知道有这个问题,但是至今到没有找到解决问题的好办法。

官方给出的答复(vpn)


0 0
原创粉丝点击