关于android studio升级3.0以后自动输出apk名的报错问题
16lz
2021-01-26
升级gradle到3.0.1的时候,app.gradle报了如下几种错误错误:主要是将以前的output.outputFile替换为outputFileName。
Could not get unknown property 'outputFile' for BuildType_Decorated{name=output, debuggable=false, testCoverageEnabled=false, jniDebuggable=false, pseudoLocalesEnabled=false, renderscriptDebuggable=false, renderscriptOptimLevel=3, minifyEnabled=false, zipAlignEnabled=true, signingConfig=null, embedMicroApp=true,
Ambiguous method overloading for method java.io.File# . Cannot resolve which method to invoke for [class java.lang.String, null] due to overlapping prototypes between: [class java.lang.String, class java.lang.String] [class java.lang.String, class java.io.File] Open File
No signature of method: java.util.ArrayList.endsWith() is applicable for argument types: (java.lang.String) values: [.apk] Open File
反正不管是哪种错误,最后经过翻阅各个博客资料,和自己的尝试,修改为下面的方案总算是可以了。
//自定义打包时apk名字 android.applicationVariants.all { variant -> variant.outputs.all { output -> def fileName if (outputFileName != null && outputFileName.contains('.apk')) { if (variant.buildType.name.equals('release')) { //输出示例: yilv-huawei-release.apk fileName = "yilv-${variant.productFlavors[0].name}-${defaultConfig.versionName}-relese.apk" } else if (variant.buildType.name.equals('debug')) { fileName = "yilv-${variant.productFlavors[0].name}-${defaultConfig.versionName}-debug.apk" } outputFileName = fileName } } }//渠道 productFlavors { develop {} xiaomi {} huawei {} }
当然了,这是在区分debug包和release包的输出,如果不要区分的话,就直接输出就好了:
//自定义打包时apk名字 android.applicationVariants.all { variant -> variant.outputs.all {
outputFileName = "app-${defaultConfig.versionName}-debug.apk"
} } 至于添加版本号和versionName之类的方法,网上已经很多了,大家随便一搜就搜到了。我就不BB了
更多相关文章
- Android(安卓)Ant打包打入第三方包报错解决方案
- 编译android sdk时的出错out/host/linux-x86/obj/STATIC_...
- Flutter-APP打包流程
- JNI中的本地方法添加调试信息
- Others1
- [Android] Eclipse错误:Conversion to Dalvik format failed with
- android 命令行打包
- cocos2dx的学习
- android 打包混淆报错问题