配置完热更新后,直接run模式运行,程序会报以下错误:

Tinker does not support instant run mode, please trigger build by assembleDebug or disable instant run in 'File->Settings...'.

解决办法就是在File-Settings-Build,Execution,Deployment-Instant run下取消打钩,如下图。

这样设置,run运行出来的会在手机上重新安装包,删除原安装包,再运行;最重要的是不能进行代码的调试。下面是我为了让两者并存使用的方法。

第一步:在gradle.properties文件里设置标记tinkerEnable

Project中的gradle.properties为gradle的配置文件,里面可以定义一些常量供build.gradle使用。这里我们需要配置一个tinkerEnable=true(true表示需要开启trink功能,false反之)

第二步:在project的build.gradle下使用变量标记

在project的build.gradle文件的使用ext配置变量 tinkerEnabled,用来标记是否使用 TInker。

第三步:通过标记值决定是否初始化Tinker

在Module的build.gradle中配置buildConfigField参数,编译后在..\app\build\generated\source\buildConfig文件夹下会自动生成对应版本对应module的BuildConfig.java。BuildConfig就会包含对应版本的配置信息。程序中可以直接引用这些数据。所以我们通过自定义BuildConfig属性来使用tinkerEnabled变量。

第四步:通过标记值决定是否使用脚本插件

在Module的build.gradle中配置tinker插件,当然了,使用tinkerEnabled变量来判断是否引用tinker-support.gradle 构建项目。

注意:我的tinker-support.gradle文件是在app目录下的,所以这里要看你们的目录文件在哪里,否则会报错,找不到该文件。

第五步:配置SampleApplicationLike文件

根据 BuildConfig.TINKER_ENABLE 判断是否初始化 Tinker 的代码,(BuildConfig.TINKER_ENABLE的值就是gradle.properties中设置tinkerEnable的值)

OK,中间出现大大小小问题,一直困扰了好几天,现在终于实现了热更新与instant run并存的功能,只需要在第一步设置上修改tinkerEnable=false,打开instant run模式就能正常运行了。

最后感谢这边网友的文章:

android中热更新模式,Android热更新与开启Instant Run相关推荐

  1. Android中Activity启动模式

    Android中Activity启动模式一共是四种,这里我写一下我对其的理解: 1.standard(默认) 2.singleTop,如果某个Activity设置了该属性,且当前Activity就是这 ...

  2. android中的recovery模式

    这里使用基于freescale的imx_r9.2 patch的android源码分析. android中的recovery模式,作为android的开发者或者用户都应该清楚和了解.android利用r ...

  3. Android中的代理模式

    Android中的代理模式 1. 什么是代理 比如我们生活中的找出租屋,需要去找中介进行寻找挑选.而这里的中介就是代理.列子中看出代理特点如下1. 租客跟中介要做成的最终目的是一致的就是租到房子(目标 ...

  4. android中如何实现UI的实时更新---需要考虑电量和流量

    1.如果不考虑电量和流量的话,只需要在对应的activity里面继承Runnable,在run方法里面写一个while死循环,调用接口返回数据,如果数据发生了变化,就立即更新UI 2.需要考虑电量的话 ...

  5. android 开发工具类,Android中常用开发工具类—持续更新...

    一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...

  6. android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用

    一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Mode ...

  7. android中的mvp模式怎么定义,在android中使用MVP模式

    1.MVP介绍java 随着UI建立技术的功能日益加强,UI层也履行着愈来愈多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专一于处理数 据的可视化以及与用户的交互,同时 ...

  8. Android中Activity启动模式详解

    在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...

  9. 【译】Android中的安全数据— Android中的加密(第1部分)

    目录 Java密码体系结构 Android Key Store 样例项目 下一步是什么 安全提示 Java密码体系结构 Android建立在Java密码体系结构(JCA)的基础上,该体系结构提供了用于 ...

最新文章

  1. Docker 宿主机定时清除容器的运行日志
  2. Gartner:2012年大数据HypeCycle
  3. 转载:力扣:整数翻转(难点:整数溢出)
  4. 马斯克回应“逃税”:没有从特斯拉领取高薪 一直在按规定缴税
  5. html页面送值转换,在静态页面html中跳转传值
  6. Python hashlib、hmac模块
  7. Boltzmann 玻尔兹曼机(BM)
  8. spring 容器的 profile 功能
  9. 游戏一般用什么编程语言开发?
  10. kafka错误代码解释
  11. Axure R8学习记录
  12. 解决VAX 2210 不能识别 VS2017的问题
  13. 你都为美白缴过哪些智商税? | Alfred数据室
  14. c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数
  15. mysql查询表的内容_mysql查询表内容
  16. Linux ❉ ntpdate命令详解
  17. 防雷接地电阻值标准及其规范要求
  18. 有没有什么惊艳的微信头像?Python一键下载1000张!
  19. qml 不刷新 放大还原_耳放攻略2020版提升耳机音质,怎么买才不坑?手把手教你买...
  20. 学会网络远程控制,就可在办公室操作家中的电脑

热门文章

  1. Android 辅助服务实战-游戏点击器
  2. IT项目管理 PPT 选择题【太原理工大学】
  3. matlab时间延迟怎么写,大家帮我看一下这个c_c方法时间延迟的程序运行结果??...
  4. SpringBoot resultful风格返回格式
  5. SCI常用词语及技巧 - 易智编译EaseEditing
  6. 菜鸟云打印接入Demo
  7. C++秋招春招面试总结
  8. 微软各系列软件中 MSDN 、 RTM 、 OEM 、 VOL 各版本的含义和区别
  9. 华为社招机考考什么_牛客网-华为-2020届校园招聘上机考试-软件类机考-3
  10. 2021-2025年中国拜勒病治疗行业市场供需与战略研究报告