升级gradle版本之后小米手机调试安装失败

来源:互联网 发布:js字符串包含某个字符 编辑:程序博客网 时间:2024/06/10 09:08

转载地址:https://zhuanlan.zhihu.com/p/25572184?utm_source=qq&utm_medium=social


昨天刚入手小米MIX,也恰好升级了AS2.3,在使用MIX调试运行的时候,却发现程序总是安装不上,报错信息是这样的:

点OK卸载之后却又提示卸载失败,然后调试安装就中断了,这就很尴尬,很明显关键字是

Failed to establish session

Google 搜一下,发现就算SO上面的解决办法,也是说在开发者选项中把小米的“MIUI优化”关掉,原因未知。试了一下关掉MIUI优化确实有用,但这我就不敢关了啊,万一发release包之后在开MIUI优化的机子上嗝屁了那我不是完蛋?

只能自己查一下问题,在安装过程中,我发现run信息是这样的

换到我的Nexus 5x上安装

一切正常


突然联想到AS2.3升级后的新特性

构建系统:支持新的 Gradle 插件 2.3.0 。有一些显着的变化:

  • 默认情况下启用 dex 文件的用户缓存,这将加快构建

  • 非常大的项目的配置时间应该明显更快

  • 对于即时运行,“启动延迟”(大应用程序在启动时停顿几秒钟)应该消失

  • 即时运行使用针对 Android N 的“APK拆分”,这比它用于定位较旧的平台的类加载器技巧更可靠

我恰好把手头上这个项目升级了gradle,于是我找了个老项目跑了一下看看

很明显老项目并没有这个“split-apk”的安装过程。这是AS2.3之后的新特性。那么基本可以确定在安装Split APKs的时候,MIUI优化对slice apk做了什么操作,返回了“failed to establish session”,让IDE判断需要卸载安装,但这个时候手机上还没有真正的apk,然后就理所当然的卸载失败了。

目前向MIUI反馈还没有什么回复嘛,在这个问题修复之前,升级了AS2.3的朋友们新项目要用小米手机调试的话,可以先考虑用老项目的Gradle覆盖一下把Gradle降级,应该不会出问题。


0 0
原创粉丝点击