Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{…

在做多渠道打包的时候出现了这个错误,在高版本的gradle出现。

 

具体错误为:Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
我的代码为下:

这个在低版本的gradle是行得通的,但是高版本就不行。

高版本的应该这样:

variant.outputs.each改为variant.outputs.all

output.outputFile = new File(outputFile.parent, fileName)改为outputFileName = fileName

解决Error:All flavors must now belong to a named flavor dimension. Learn more at…

低版本的gradle里面不会出现这个错误,高版本出现,不多说,看如何解决

在defaultConfig{}中添加:

flavorDimensions “default”

保证所有的flavor 都属于同一个维度

 

解决Error:All flavors must now belong to a named flavor dimension. Learn more at…

转载请标明出处:http://77blogs.com/?p=297

低版本的gradle里面不会出现这个错误,高版本出现,不多说,看如何解决

在defaultConfig{}中添加:

flavorDimensions “default”

保证所有的flavor 都属于同一个维度

 

 

Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{…

转载请标明出处:http://77blogs.com/?p=298

在做多渠道打包的时候出现了这个错误,在高版本的gradle出现。

 

具体错误为:Cannot set the value of read-only property ‘outputFile’ for ApkVariantOutputImpl_Decorated{apkData=Main{type=MAIN, fullName=debug, filters=[]}} of type com.android.build.gradle.internal.api.ApkVariantOutputImpl.
我的代码为下:

 

这个在低版本的gradle是行得通的,但是高版本就不行。

高版本的应该这样:

 

variant.outputs.each改为variant.outputs.all

output.outputFile = new File(outputFile.parent, fileName)改为outputFileName = fileName

 

解决Android编译时出现aapt.exe finished with non-zero exit value 1

当出现这个错误的时候,说明了你的资源文件出错了。然而AS能给你提供的信息实在太少,看了半天没看出个所以然,也没有说明是哪个资源文件出错,一头雾水。

这时候就可以用

Gradlew

来调试。

而gradlew命令需要java环境,所以我们需要配置JDK和jre环境变量,过程就不说了。

若是已经配置好了java环境,便可使用Android Studio自带的终端进行调试:

此时可以看到一些java信息。

接下来输入一条非常关键的指令:

gradlew processDebugResources --debug

 

然后项目开始编译,屏幕上输出大量编译Log信息

将其全部拷贝到Notepad++,然后搜索:aapt

然后看查找到的appt错误提示是什么,从中可以看到是哪个资源文件出错。

 

转载请标明出处:http://77blogs.com/?p=300

参考文章:https://blog.csdn.net/qq_24118527/article/details/83586161