记一次Mac as升级遇到的麻烦

一:场景
1、Mac版Android studio升级,旧版本studio3.1.2、Gradle4.4 --> 新版本studio4.0.1、Gradle6.1.1
2、升级之后,创建新项目可以正常编译、运行,证明IDE升级正常。
3、下面,问题来了:打开工作项目(此项目比较老旧、结构混乱…)编译无法通过
报错如下:
在这里插入图片描述

二:解决办法
1、看到这个报错后,Sync Now、Clean、Rebuild、Sync Project with Gradle Files、Restart甚至删除项目重新导入,都做了,然而,无效。。。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、仔细看日志,第一句话是:Unable to find method 'org.gradle.internal.Describables.withTypeAndName(Ljava/lang/String;Ljava/lang/String;)Lorg/gradle/internal/DisplayName;
在网上并没搜到实质性的资料。
3、继续看日志,提示说有可能是网络原因或者Gradle进程中断,在确保网络(普通网络、科学上网都顺畅)通畅、Gradle也正常,仍然无效。。。
在这里插入图片描述

4、下面,正解来了,
4.1、无意间点开日志详情看到这么一句话,并提示使用命令–warning-mode all 看明细,在这里插入图片描述

4.2、在控制台执行这条命令,注:在Mac上,前面加上./gradlew app:assembleDebug,执行完命令后问题终于锁定了,某一模块中mavenpush.gradle这个文件里的问题,这个模块起初是用作工具模块,要发到maven上,才会用到mavenpush.gradle,现在我把代码直接引到了本地,自然不需要maven配置,删掉这个文件就好了。在这里插入图片描述

三、总结:看起来很轻松就解决了,当时还是挺费劲的,走了很多弯路才发现的那句命令(–warning-mode all)。主要还是经验不足,另外就是容易进入误区(出现问题,第一反应就是复制出来去百度,然后clean、rebuild…),这次经历学到了:仔细研究日志、善用控制台命令,谨记!

### Android Studio 编译时出现乱码问题解决方案 在开发过程中,如果遇到 `FAILURE: Build failed with an exception` 并伴随乱码的情况,可能是由于编码设置不一致或其他配置问题引起的。以下是针对该问题的具体分析和解决方法: #### 1. 设置文件编码为 UTF-8 确保项目的文件编码统一为 UTF-8 是解决问题的关键之一。可以通过以下方式调整: - 打开 **Android Studio** 的设置菜单: Windows/Linux 用户可以点击 `File -> Settings`;Mac 用户则点击 `Android Studio -> Preferences`。 - 导航到 `Editor -> File Encodings` 页面。 - 将以下选项均设置为 `UTF-8`: - **Global Encoding** - **Project Encoding** - **Default encoding for properties files** 完成上述操作后保存并重新启动 IDE。 #### 2. 修改 Gradle 配置支持中文字符 有时编译失败是因为 Gradle 脚本无法正确解析包含中文字符的内容。可以在 `gradle.properties` 文件中加入如下属性以强制指定编码[^1]: ```properties org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 ``` 此配置会告诉 JVM 使用 UTF-8 来处理所有输入输出流中的数据。 #### 3. 清理缓存与重建项目 清理旧的构建缓存有助于排除潜在的历史遗留问题: - 在菜单栏选择 `Build -> Clean Project` 和 `Build -> Rebuild Project` 完成一次完整的清洁重构建过程。 - 如果仍然存在问题,则尝试删除 `.gradle`, `.idea` 目录以及 `/build` 文件夹后再执行以上命令。 #### 4. 升级或降级 Gradle 版本 某些版本间的兼容性差异也可能引发此类错误。例如当升级至较新的 AS 或 Gradle 插件版本时可能会引入新特性而导致现有代码不适配。因此建议查看官方文档确认当前使用的组合是否已被验证稳定工作,并考虑适当回退不稳定更新[^2]。 另外需要注意的是,在高版本环境下需开启矢量图库的支持功能来规避资源加载方面的冲突[^3]: ```groovy defaultConfig { ... vectorDrawables.useSupportLibrary = true } ``` 最后,对于一些难以定位原因的小概率事件(比如特定场景下的随机崩溃),简单粗暴的办法就是关闭再打开软件甚至重启电脑试试看——这听起来虽然不够优雅但确实有效[^4]。 通过实施这些措施通常能够有效地缓解乃至彻底消除因编码设定不当所造成的各种麻烦状况。 ```java // 示例代码片段展示如何读取外部存储卡上的文本文件内容 try (BufferedReader br = new BufferedReader(new InputStreamReader( context.openFileInput("example.txt"), StandardCharsets.UTF_8))) { String line; StringBuilder sb = new StringBuilder(); while ((line = br.readLine()) != null) { sb.append(line).append("\n"); } } catch (IOException e) { Log.e("ReadError", "Failed to read file.", e); } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值