android 该文件包与具有同一名称的现有文件包存在冲突
问题:
安装应用提示 该文件包与具有同一名称的现有文件包存在冲突。 无法安装
可能的原因:新版的软件的versionCode和现有版本的软件相同
解决方案:
修改新版本软件的versionCode。为了不用每次发布都手工修改,通过代码可以设置为自动增加+1
方法如下:
第一步:
创建一个文件,名字就叫version.properties(当然,这个不一定要这么写),位置和build.gradle文件同级,app这个是我的执行module,
文件里面的内容是:
VERSION_CODE=10104
第二步:
在build.gradle文件里面加入以下代码(注意:代码的位置和android{...}平级),此方法是获取自增之后的版本号
def getVersionCode() {// 获取版本号
def versionFile = file('version.properties')// 读取第一步新建的文件
if (versionFile.canRead()) {// 判断文件读取异常
Properties versionProps = new Properties()
versionProps.load(new FileInputStream(versionFile))
def versionCode = versionProps['VERSION_CODE'].toInteger()// 读取文件里面的版本号
def runTasks = gradle.startParameter.taskNamesString runTasksStr=""for(String s:runTasks){runTasksStr+=s+","}//runTasks=,\:app\:assembleReleaseif (runTasksStr.indexOf("assembleRelease")>=0) {//仅在assembleRelease任务是增加版本号,其他渠道包在此分别配置// 版本号自增之后再写入文件(此处是关键,版本号自增+1)versionProps['VERSION_CODE'] = (++versionCode).toString()//versionProps['runTasks'] = strsversionProps.store(versionFile.newWriter(), null)}return versionCode.toInteger()// 返回自增之后的版本号
} else {
throw new GradleException("Could not find version.properties!")
}
}
android{
...
}
需要特别注意的是,正常情况,我们只有在打包的时候才需要自增versionCode,平时调试是不需要改变这个值的,所以我们需要加入下面这个判断
如果有多渠道打包时,可以这样写,task1和task2要根据具体情况而定。
if ('assembleRelease' in runTasks || 'task1' in runTasks || 'task2' in runTasks ) {//仅在assembleRelease任务是增加版本号,其他渠道包在此分别配置
// 版本号自增之后再写入文件(此处是关键,版本号自增+1)
versionProps['VERSION_CODE'] = (++versionCode).toString()
versionProps.store(versionFile.newWriter(), null)
}
值得一提的是,我在做这一步的时候,碰到了一个坑,我没有设置多渠道打包,按理说task的值是assembleRelease(一般情况是这样的),但是实际上我这里需要用:app:assembleRelease,至于什么原因,此处就不说了,教大家一个很简单的方法来确定这个值:
就是你打包一个release的apk,打包的过程中你可以看到这段代码,其中2中红色框框里面的中括号内容便是你所需要的
第三步:
build.gradle文件,在你设置版本号的加入一下代码
我这里是直接在默认位置设置的版本号,要注意这段代码的位置哟!!!
versionName和versionCode处理方式类似,最后再去简单说明一下
def currentVersionCode = getVersionCode()
现在,你再去打包,你会发现,version.properties里面的10104变成了10105,如果没有改变,有两个可能:
1、第二步里面的 assembleRelease 错了,请按照第二步中红色文字调试
2、第三步中,getVersionCode()方法的位置错了(我当时不小心放到defaultConfig{...}中去了)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最后,简单提一下getVersionName()这个方法
def getVersionName() {
def date = new Date();
def versionName = date.format('yyyyMMddHHmmss');
return versionName
}
android 该文件包与具有同一名称的现有文件包存在冲突相关推荐
- [Android] 该文件包与具有同一名称的现有文件包存在冲突
1.[Android] 该文件包与具有同一名称的现有文件包存在冲突 出现这种情况有2方面原因 一方面是你代码里确实有问题,可能出现了 INSTALL FAILED CONFLICTING PROVID ...
- android 应用更新安装时出现《 文件包与具有同一名称的现有文件包冲突》小记录
前言:实现应用自动下载更新时,在安装时出现"文件包与具有同一名称的现有文件包冲突"的错误. 因为适配7.0以上获取内置路径的适配,添加了配置一些配置: <provideran ...
- Android安装App出现:“该文件包与具有同一名称的现有文件包存在冲突”的解决方法
由于做项目,拿魅族手机开发调试App,之前一直用AS直接Build之后安装App,没什么问题.最近用AS发布App,使用魅族手机安装时,提示"该文件包与具有同一名称的现有文件包存在冲突&qu ...
- 该文件包与具有同一名称的现有文件包存在冲突
1.情况:之前apk使用乐固,更新版本使用360加固(360兼容Android 版本9),更新的时候出现:"该文件包与具有同一名称的现有文件包存在冲突" 2.问题:签名使用错了 3 ...
- 应用未安装 该文件包与具有同一名称的现有文件包存在冲突
究其原因我也不知道 反正就是apk包出了问题 网上答案多数是说设置provider用${applicationId}方式 <providerandroid:name="androidx ...
- uniapp一套代码打包两个APP 安装失败,提示:与已安装应用签名不同,该文件包与具有同一名称的现有文件包存在冲突
同一套代码要打包两个不同app,更换了名称和图标,为做区分还更换了打包签名文件. 安装第二个apk的时候发生冲突,提示如下图:与已安装应用签名不同. 解决办法如下: 在manifest.json 文件 ...
- 安装应用提示 该文件包与具有同一名称的现有文件包存在冲突。 无法安装
解决方案 : 方式一.在cmd 使用 adb uninstall 包名(这个是大多数原因) 方式二.修改 versionCode
- android 复制文件到指定文件夹_按指定名称批量新建文件夹,其实并不难
假如你有一个很长的excel名单,成百上千人.业务需要,这些姓名都需要单独做成一个个文件夹. 难道要新建文件夹,然后复制多个,然后用复制粘贴大法一个个去修改文件夹名字吗??? 记住一句话,EXCEL中 ...
- python怎么导入数据包_python – Scapy:如何在现有数据包中插入新层(802.1q)?
为了找到答案,我看了一下 Scapy: Inserting a new layer and logging issues,这真的很有用,但包含了一些内容. 我根据引用的问题(add-dot1q_pca ...
最新文章
- JavaScript停止冒泡和阻止浏览器默认行为
- AutoCAD2004启动时出现fail to get CommcntrController的怎么办
- mysql 出现 quot_mysql 出现 quot;the table is fullquot;的问题 - tmuffamd - ITeye博客
- Do 32-bit build only with XCode 5.1
- iOS 10 推送的简单使用
- 负负为何得正的推理过程
- 【清华大学陈渝】第四章_物理内存管理
- android 日历 插件,Android实现日历控件示例代码
- excel熵值法计算权重_一文讲清楚分散投资(下)——让很多人顿悟的“熵增定律”在投资中的应用...
- Redis之惰性删除
- matlab期末题库,Matlab-期末考试题库(共12套卷)
- Linux丢包问题排查思路
- 教你如何鉴别原装和组装线孔耳机
- 【Gulimall】Spring Cloud:spring-cloud-gateway、spring-cloud-openfeign,Alibaba的注册+配置中心Nacos
- 文章翻译—基于误差状态卡尔曼滤波器的四元数运动学—前言
- C/C++语言问题——某年某月的天数是多少?
- python小技巧5 调整图片像素输出更清晰
- java static方法过多_Java 项目静态方法过多会有什么样影响?静态类、静态方法影不影响多线程性能...
- 苹果4s怎么显示无服务器,苹果4s连接电脑没有反应怎么办 苹果4s怎么连接电脑...
- NSA提供有关如何降低位置跟踪风险的建议