android studio 编译打包,android studio 一个项目如何打包多个apk

1.修改app的build.gradle文件

假设我们同一套代码编译2个app:demo1和demo2

android {

...

productFlavors {

// demo1

demo1 {

// 设置applicationId(这里很重要,两个相同applicationId的apk不同同时安装在同一台Android手机中)

applicationId "com.glorystudent.buglydemo1"

// 自动生成@string/app_name为demo

resValue "string","app_name","demo1"

// 定义app_icon字段,在AndroidManifest.xml文件中用到

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "demo1",app_icon : "@mipmap/ic_launcher"]

}

// demo2

demo2 {

// 解释同app1

applicationId "com.glorystudent.buglydemo2"

resValue "string","app_name","demo2"

manifestPlaceholders = [UMENG_CHANNEL_VALUE: "demo2",app_icon : "@mipmap/ic_launcher1"]

}

}

lintOptions {

checkReleaseBuilds false

abortOnError false

}

}

2.去坑,我们上面写了

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

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

demo

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

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

3.修改AndroidManifest.xml文件

android:name=".base.MyApplication"

android:allowBackup="true"

android:hardwareAccelerated="true"

//app图像

android:icon="${app_icon}"

android:label="@string/app_name"

android:supportsRtl="true"

android:theme="@style/AppTheme">

//appname

android:name="UMENG_CHANNEL"

android:value="${UMENG_CHANNEL_VALUE}"/>

android:name=".ui.activity.SplashActivity"

android:label="@string/app_name"

android:screenOrientation="portrait"

android:theme="@style/AppTheme.NoActionBar">

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

android {

...

lintOptions {

checkReleaseBuilds false

abortOnError false

}

}

打包并签名APK

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

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

4.注意:可能出现的问题

如果可以打包不同版本的apk,但是不能同时安装到同一台设备,提示:xx有相同组件之类的。然后查看两个apk的包名是否一样,结果两个apk的包名是不同的。一般情况不会,执行签名步骤就ok了:

记住,provider标签的authorities属性的值一定要是唯一的,如果两个app的authorities属性值一样,就会提示安装失败,一定要记住!!

---------------------

作者:zuo_er_lyf

来源:CSDN

原文:https://blog.csdn.net/zuo_er_lyf/article/details/79064853

版权声明:本文为博主原创文章,转载请附上博文链接!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值