Androidstudio下一个工程生成不同的app,移动安全入门

  • 23

  • 24

  • 25

  • 26

  • 27

  • 28

注意啦,这里有个坑,我们上面写了

resValue "string","app_name","demo"

  • 1

运行之后,AS会自动生成@string/app_name,内容是这样的

<item type="string" name="app_name">demo</item>

  • 1

那么问题来了,如果你在app的strings.xml文件也定义了

<string name="app_name">demo</string>

  • 1

编译的时候就会出现问题,因为有2个app_name,所以我们要把app的strings.xml去掉,编译就会正常了。

再注意啦,我们只能在app的build.gradle文件配置各个版本的值,如

`app1 { buildConfigField "in

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

浏览器打开:qq.cn.hn/FTe 开源分享

t", “TYPE”, “1” } app2 { buildConfigField “int”, “TYPE”, “2” }`

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

如果你在其他子模块配置的话,编译时出现乱七八糟的错误!!

如果子模块需要配置的值,可以在公共模块定义静态变量,在app模块取出配置值后,设置到公共模块定义的静态变量中,这样的话各个模块都可以取到!!

修改AndroidManifest.xml文件

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.johan.demo"> <application android:allowBackup="true" // 注意啦,这里改为${app_icon} android:icon="${app_icon}" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".ui.MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

  • 11

  • 12

  • 13

  • 14

  • 15

  • 16

  • 17

  • 18

  • 19

注意啦,icon属性的值是${app_icon},虽然为红色,但是不要紧,我们在build.gradle文件中加入了这么一段代码:

android { ... lintOptions { checkReleaseBuilds false abortOnError false } }

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

这里的作用就是即使项目中报错也不会停止打包 。

打包并签名APK

我们打包时,就会出现2个app:

我们选择2个app,AS就会帮我们打包2个不同的APK了,就这么简单!!

填坑
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值