内容简介:Maybe 你会有这个烦恼,在开发的时候,测试突然告诉你,正式包上有点问题,需要看一下,这时候你打开测试机发现上面装的是测试包,没事,那就卸载了装个正式包呗。然后嘞,正式包的问题确认完了,发现不是 Bug,而是一个 Feature,你需要回到测试包继续开发,结果发现,又得把正式包卸载了然后装个测试包。这一来二去的多麻烦呀~怎么解决呢,有人说,我手里头有两台测试机,一台装正式包,另一台装测试包。我想说,陈独秀同学,你先坐下,咱大多数人都只有一台测试机呀。
Maybe 你会有这个烦恼,在开发的时候,测试突然告诉你,正式包上有点问题,需要看一下,这时候你打开测试机发现上面装的是测试包,没事,那就卸载了装个正式包呗。然后嘞,正式包的问题确认完了,发现不是 Bug,而是一个 Feature,你需要回到测试包继续开发,结果发现,又得把正式包卸载了然后装个测试包。
这一来二去的多麻烦呀~
怎么解决呢,有人说,我手里头有两台测试机,一台装正式包,另一台装测试包。我想说,陈独秀同学,你先坐下,咱大多数人都只有一台测试机呀。
那么,问题来了,怎么实现一台手机上同时安装正式包和测试包呢。这就是本文要解决的问题。
2. 实现一台手机上同时安装正式包和测试包
我们知道,Android 应用的唯一标识是包名,也就是 build.gradle
里的 applicationId
。在一台手机上不允许安装的两个包的唯一标识重复。因此,只需要把测试包的 applicationId
亦即包名改一下就好了~
2.1 修改测试包包名
查阅文档之后发现,Android 官方对这种场景早有支持,只需要在 app/build.gradle
的 android->buildTypes->debug
节点下面设置 applicationIdSuffix
即可,示例如下:
android { // ... buildTypes { debug { minifyEnabled false applicationIdSuffix ".test" // 测试包增加包名后缀 } release { // ... } } //... } 复制代码
2.2 问题来了~编译失败
事情往往不会这么简单,在我修改完 app/build.gradle
之后,sync 一下,发现,编译失败了,译失败了,失败了,败了,了。。。
错误日志如下:
[...] :app:compileDebugJavaWithJavac error: The generated com.xxx.xx.test.R class cannot be found 复制代码
咋办,不知道咋回事儿,看起来像是 AndroidAnnotation 的锅。面向搜索引擎编程,经过一番搜索,发现了这个: Using a debug "applicationIdSuffix" causes compilation errors #1888 。
2.3 问题解决
具体解释参见上述 issue,贴一下解决办法。在 android->defaultConfig
下增加 javaCompileOptions
配置:
javaCompileOptions { annotationProcessorOptions { arguments = [ "resourcePackageName": android.defaultConfig.applicationId ] } } 复制代码
resourcePackageName
这个参数是 AndroidAnnotations
定义的,关于它的具体含义可以参考 这里
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Metaspolit下配合Ngrok同时实现内网反弹+转发
- Spring Boot-实现Undertow服务器同时支持HTTP2、HTTPS
- Android XML灵活布局之 EditText实现自适应高度同时限制最小和最大高度
- FPGA保持灵活性同时拥有ASIC级AI性能是可实现的吗?
- 实现动态、弹性和细粒度的资源分配和控制,支持同时加速运行多个模型训练
- 开源 UI 库中,唯一同时实现了大表格虚拟化和树表格的 Table 组件 原 荐
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Persuasive Technology
B.J. Fogg / Morgan Kaufmann / 2002-12 / USD 39.95
Can computers change what you think and do? Can they motivate you to stop smoking, persuade you to buy insurance, or convince you to join the Army? "Yes, they can," says Dr. B.J. Fogg, directo......一起来看看 《Persuasive Technology》 这本书的介绍吧!