Android打包另类问题
2020-03-23 本文已影响0人
爺珍爱那颗心
今天遇到的问题,内容来源于网络,记录一下。
运行之后产生的包发给别人安装不了
outputs中解决方案
- 在gradle.properties添加
android.injected.textOnly=false
即可
原理
-
AS Run
出来的Apk
,之所以无法安装,是因为其携带了FLAG_TEXT_ONLY 这个 Flag
,它会阻止我们使用正常的方式安装。想要安装,可以通过adb install -t
来解决。
虽然这个Flag 初始于 API Level 4
,但是它在AS 3.0
中,才被默认加入。想要去掉可以通过增加android.injected.textOnly=false
来实现。
正式包和测试包由于包名相同不能同时安装到同一个手机上
- 正式包的环境和测试包的环境是不一样的,有的时候正式包和测试包都会出现问题,这个时候,来回安装太浪费时间了
解决方案
- 在 app下的build.gradle 的 android➡buildTypes➡debug 节点下面设置 applicationIdSuffix 即可
android {
// ...
buildTypes {
debug {
buildConfigField "String", "HOST", "\"http://IP:端口\""
minifyEnabled false
applicationIdSuffix ".test" // 测试包增加包名后缀
}
release {
// ...
buildConfigField "String", "HOST", "\"http://IP:端口\""
}
}
//...
}
原理
- 就是修改了包名
(applicationId)