gradle: java.nio.charset.MalformedInputException: Input length = 1

今天遇到一个问题,下载svn上的项目,别人的电脑不会报错,我的电脑报错,一脸尴尬

Information:Gradle tasks [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar]
Error:Execution failed for task ':app:processDebugResources'.
> java.nio.charset.MalformedInputException: Input length = 1

就是这个错,先说一下解决办法吧,网上搜很多大神的解释是编译问题(也就是UTF-8),但我们文件都是UTF-8的所以应该不是这个问题,主要是我电脑的gradle版本有问题(可能是当时下载出错了)所以在  gradle/wrapper/gradle-wrapper.properties 文件下的  distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip  我电脑的是4.1-all改成4.2-all然后重新下载就好了(右上角有一个syce try,点一下),如果没有重新下载就重新启动下面,要等一会,下载完重新编译就没问题了。

        那么说一下解决问题的思路吧,首先是上网查,真的是查了一个上午都没查到(大概3个小时烦躁时间),网上基本没有找到相关问题,因为 java.nio.charset.MalformedInputException: Input length = 1   是一个java 程序的bug,在io输出或者转译的时候会出现,关键字就这两句,所以基本没果。接下来就是程序对比了,因为别人的电脑没问题,而我的电脑出问题,结果只有两个一种就是我的Android studio有问题,另一个就是配置有问题(包括SDK和Gradle等),通过错误程序,是Gradle tasks的问题,所以我猜测是Gradle,当然我不是马上就找到问题的根源,通过打卡svn上之前版本的项目,才发现的,之前版本是3.3打开没有报错,这里我就肯定是这个问题,当然Gradle是不能向下调整的(我试过改为3.3直接不能编译了),所以我就提高一个版本4.2,然后重新编译就成功了,当然我是上Gradle官网上看了有4.2才改,所以在修改的时候也要查询一下你修改的版本是否存在,Gradle的网址就是 https://services.gradle.org/distributions 确认一下比较安全,当然如果没有更高版本了,那就建议你将本地的Gradle删除掉,然后在运行Android studio进行重新下载。

 

转载请注明:https://blog.csdn.net/u011531833/article/details/82463154

你可能感兴趣的:(android开发)