android中热更新模式,Android热更新与开启Instant Run
配置完热更新后,直接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相关推荐
- Android中Activity启动模式
Android中Activity启动模式一共是四种,这里我写一下我对其的理解: 1.standard(默认) 2.singleTop,如果某个Activity设置了该属性,且当前Activity就是这 ...
- android中的recovery模式
这里使用基于freescale的imx_r9.2 patch的android源码分析. android中的recovery模式,作为android的开发者或者用户都应该清楚和了解.android利用r ...
- Android中的代理模式
Android中的代理模式 1. 什么是代理 比如我们生活中的找出租屋,需要去找中介进行寻找挑选.而这里的中介就是代理.列子中看出代理特点如下1. 租客跟中介要做成的最终目的是一致的就是租到房子(目标 ...
- android中如何实现UI的实时更新---需要考虑电量和流量
1.如果不考虑电量和流量的话,只需要在对应的activity里面继承Runnable,在run方法里面写一个while死循环,调用接口返回数据,如果数据发生了变化,就立即更新UI 2.需要考虑电量的话 ...
- android 开发工具类,Android中常用开发工具类—持续更新...
一.自定义ActionBar public class ActionBarTool { public static void setActionBarLayout(Activity act,Conte ...
- android中的mvp模式怎么定义,详解MVP模式在Android开发中的应用
一.MVP介绍 随着UI创建技术的功能日益增强,UI层也履行着越来越多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专注于处理数据的可视化以及与用户的交互,同时让Mode ...
- android中的mvp模式怎么定义,在android中使用MVP模式
1.MVP介绍java 随着UI建立技术的功能日益加强,UI层也履行着愈来愈多的职责.为了更好地细分视图(View)与模型(Model)的功能,让View专一于处理数 据的可视化以及与用户的交互,同时 ...
- Android中Activity启动模式详解
在Android中每个界面都是一个Activity,切换界面操作其实是多个不同Activity之间的实例化操作.在Android中Activity的启动模式决定了Activity的启动运行方式. An ...
- 【译】Android中的安全数据— Android中的加密(第1部分)
目录 Java密码体系结构 Android Key Store 样例项目 下一步是什么 安全提示 Java密码体系结构 Android建立在Java密码体系结构(JCA)的基础上,该体系结构提供了用于 ...
最新文章
- Docker 宿主机定时清除容器的运行日志
- Gartner:2012年大数据HypeCycle
- 转载:力扣:整数翻转(难点:整数溢出)
- 马斯克回应“逃税”:没有从特斯拉领取高薪 一直在按规定缴税
- html页面送值转换,在静态页面html中跳转传值
- Python hashlib、hmac模块
- Boltzmann 玻尔兹曼机(BM)
- spring 容器的 profile 功能
- 游戏一般用什么编程语言开发?
- kafka错误代码解释
- Axure R8学习记录
- 解决VAX 2210 不能识别 VS2017的问题
- 你都为美白缴过哪些智商税? | Alfred数据室
- c语言 乱码转化为16进制_C语言版的16进制与字符串互转函数
- mysql查询表的内容_mysql查询表内容
- Linux ❉ ntpdate命令详解
- 防雷接地电阻值标准及其规范要求
- 有没有什么惊艳的微信头像?Python一键下载1000张!
- qml 不刷新 放大还原_耳放攻略2020版提升耳机音质,怎么买才不坑?手把手教你买...
- 学会网络远程控制,就可在办公室操作家中的电脑
热门文章
- Android 辅助服务实战-游戏点击器
- IT项目管理 PPT 选择题【太原理工大学】
- matlab时间延迟怎么写,大家帮我看一下这个c_c方法时间延迟的程序运行结果??...
- SpringBoot resultful风格返回格式
- SCI常用词语及技巧 - 易智编译EaseEditing
- 菜鸟云打印接入Demo
- C++秋招春招面试总结
- 微软各系列软件中 MSDN 、 RTM 、 OEM 、 VOL 各版本的含义和区别
- 华为社招机考考什么_牛客网-华为-2020届校园招聘上机考试-软件类机考-3
- 2021-2025年中国拜勒病治疗行业市场供需与战略研究报告