升级到AndroidStudio3.0之后项目打包遇到的问题及解决方案
2017-11-09 14:24
746 查看
以下是本人升级AS3.0之后,将原先项目迁移过来遇到的几个问题
问题1:gradle编译问题(描述简单操作难)
升级为3.0之后 gradle-wrapper.properties文件中的
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip
升级为了
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
为此特意去网站下载了4.1-all的包放到了本地,同时修改工程依赖的build.gradle中的
classpath ‘com.android.tools.build:gradle:2.2.0’ –> 3.0.0
gradle下载地址:http://services.gradle.org/distributions/
问题2:产生编译文件命名问题
以前命名release包的方法如下
其中buildTime()方法代码为:
升级为3.0之后,会报关于outputFile引起的错误,故更改为了以下方法得到解决:
网上也有不同的搜索结果,例如以下代码,这是根据不同的命名需求来定的:
问题3:生成的apk包文件损坏问题
改用了AS3.0之后,我们刚好需要编译一个新的版本,于是提升了版本号然后点击了绿色的小箭头之后生成了一个apk包直接丢到了官网服务器,然后打开我的手机app正常提示升级,但是下载下来之后安装出现了一些问题,提示我安装包损坏,这就奇怪了,AS内能直接build通过,安装正常,生成的apk包却有问题,于是开始各种搜索解决方案,使用了如将instant run功能关闭等解决方案,都没有解决问题,最终打包没有问题的apk所用的方法是通过AS右上角的Gradle工程目录中的打包方式才打好了apk包(见下图),至于问题的原因至此还不明白是为什么……
![](http://img.blog.csdn.net/20171109141859069?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvU1hXMTkwMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
问题4:中文输入法问题
改用了AS3.0之后,发现搜狗输入法在中文模式下经常卡住,打出的文字选项只显示前几个不完整的字母,发生的概率还是挺高的,以为是搜狗输入法出问题了,一怒之下直接卸载换成了百度输入法,谁知道替换之后百度输入法甚至一个中文都无法输入,这时候才发现应该不是输入法的问题,故继续搜索,解决方案如下:
将AS3.0安装目录下的jre目录替换掉,替换成老版本的jre目录文件,刚开始替换了AS3.0bate版本的,结果还是不行,最后替换为以前用的AS2.3版本安装目录下的jre目录就好了
以上是本次升级踩坑记录,其实还有其他问题,比如lambda和java 8自带lambda冲突、编译环境升级导致需要升级依赖的类库等,只是上述问题着实费了些功夫和心思才得以解决,故在此记录下来,以供参考
问题1:gradle编译问题(描述简单操作难)
升级为3.0之后 gradle-wrapper.properties文件中的
distributionUrl=https://services.gradle.org/distributions/gradle-2.14.1-all.zip
升级为了
distributionUrl=https://services.gradle.org/distributions/gradle-4.1-all.zip
为此特意去网站下载了4.1-all的包放到了本地,同时修改工程依赖的build.gradle中的
classpath ‘com.android.tools.build:gradle:2.2.0’ –> 3.0.0
gradle下载地址:http://services.gradle.org/distributions/
问题2:产生编译文件命名问题
以前命名release包的方法如下
自定义生成apk文件名,eg:appName.wanDouJia.V1.0.1-2017011816.release.apk /*applicationVariants.all { variant -> variant.outputs.each { output -> if ("release".equalsIgnoreCase(variant.buildType.name)) { def fileName = "appName" def outputFile = output.outputFile if (outputFile != null && outputFile.name.endsWith('.apk')) { fileName += "." + variant.getFlavorName().substring(1) + ".v" + versionName + "-" + buildTime() + ".release" + ".apk" output.outputFile = new File(outputFile.parent, fileName) } } } }
其中buildTime()方法代码为:
//获取系统时间 def buildTime() { def df = new SimpleDateFormat("yyyyMMdd") df.setTimeZone(TimeZone.getDefault()) return df.format(new Date()) }
升级为3.0之后,会报关于outputFile引起的错误,故更改为了以下方法得到解决:
flavorDimensions 'api' applicationVariants.all { variant -> variant.outputs.all { output -> if ("release".equalsIgnoreCase(variant.buildType.name)) { outputFileName = "appName"+ "." + variant.getFlavorName().substring(1) + ".v" + versionName + "-" + buildTime() + ".release" + ".apk" } } }
网上也有不同的搜索结果,例如以下代码,这是根据不同的命名需求来定的:
applicationVariants.all { variant -> variant.outputs.all { output -> outputFileName=" ${variant.applicationId}- ${ buildType.name}- ${defaultConfig.versionName}-${ defaultConfig.versionCode }-${releaseTime() }.apk" } }
问题3:生成的apk包文件损坏问题
改用了AS3.0之后,我们刚好需要编译一个新的版本,于是提升了版本号然后点击了绿色的小箭头之后生成了一个apk包直接丢到了官网服务器,然后打开我的手机app正常提示升级,但是下载下来之后安装出现了一些问题,提示我安装包损坏,这就奇怪了,AS内能直接build通过,安装正常,生成的apk包却有问题,于是开始各种搜索解决方案,使用了如将instant run功能关闭等解决方案,都没有解决问题,最终打包没有问题的apk所用的方法是通过AS右上角的Gradle工程目录中的打包方式才打好了apk包(见下图),至于问题的原因至此还不明白是为什么……
问题4:中文输入法问题
改用了AS3.0之后,发现搜狗输入法在中文模式下经常卡住,打出的文字选项只显示前几个不完整的字母,发生的概率还是挺高的,以为是搜狗输入法出问题了,一怒之下直接卸载换成了百度输入法,谁知道替换之后百度输入法甚至一个中文都无法输入,这时候才发现应该不是输入法的问题,故继续搜索,解决方案如下:
将AS3.0安装目录下的jre目录替换掉,替换成老版本的jre目录文件,刚开始替换了AS3.0bate版本的,结果还是不行,最后替换为以前用的AS2.3版本安装目录下的jre目录就好了
以上是本次升级踩坑记录,其实还有其他问题,比如lambda和java 8自带lambda冲突、编译环境升级导致需要升级依赖的类库等,只是上述问题着实费了些功夫和心思才得以解决,故在此记录下来,以供参考
相关文章推荐
- 安卓项目升级 4000 sdk和第三方库遇到的问题及解决方案
- AndroidStudio低版本(1.5)升级到高版本(2.1)之后你可能会遇到的其中一个项目构建问题
- cmake升级之后遇到的cmake问题的解决方案
- xcode8.0升级之后公司项目遇到的问题
- xcode8升级之后项目遇到了问题
- Android Studio升级到2.3.3之后的打包问题
- 使用Ant自动打包项目遇到的一个问题,备案!
- 项目里面遇到的问题和解决方案的记录
- 升级struts到2.5.2遇到的问题及解决方案
- ios 写项目的时候遇到的问题及解决方案(3)
- Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
- QT项目升级(QT4.6.3到QT5.2)时,遇到的问题和解决方法
- <整理>将项目打包成runable jar包并运行遇到的问题及解决办法记录。
- 将ubuntu14.04 从mysql从5.5删除之后安装5.7遇到的一些问题(本篇不讨论热升级)
- 用VS2005给程序打包遇到的问题及解决方案
- Eclipse打包Android项目时用到proguard.cfg后,出现的Warning:can't find referenced class问题的解决方案
- 使用webpack打包react项目中遇到的问题(二)
- HBuilder将Vue打包成App遇到的问题以及解决方案
- 使用构建工具gradle打包时,遇到的中文问题和解决方案
- 最近做网页前端项目时遇到的一些问题以及解决方案