从Intel版本MacBook Pro 2013迁移到MacBook Pro 2023(Apple M2 Pro)后运行Android模拟器崩溃

MacBook Pro 2023(Apple M2 Pro)Intel 版本 MacBook Pro 2013 通过 TimeMachine 迁移后运行模拟器,启动就崩溃。

崩溃的原因是原来运行的模拟器是通过 Intel HAXM 来加速的,但是 MacBook Pro 2023(Apple M2 Pro) 已经是 ARM 指令集了。这样的组合就诱发了虚拟机的崩溃。

此处,我们需要手工卸载已经安装的 Intel x86 Emulator Accelerator(HAXM installer)Android Emulator 之后重新安装即可解决。

如下图:

继续阅读从Intel版本MacBook Pro 2013迁移到MacBook Pro 2023(Apple M2 Pro)后运行Android模拟器崩溃

解决Android Studio Electric Eel | 2022.1.1 Patch 2下removeContentEntry: removed content entry url ‘file://*****‘ still exists after removing的问题

Android Studio Electric Eel | 2022.1.1 Patch 2 中构建项目的时候,出现了

这样的报错。

经过多次尝试,发现直接删除 .idea目录是有效的。

关于该问题详细的讨论可以参考 https://stackoverflow.com/questions/66214555/gradle-sync-failed-removecontententry-removed-content-entry-url-still-ex

参考链接


解决idea下removeContentEntry: removed content entry url ‘file://*****‘ still exists after removing的问题

解决Android Studio Electric Eel | 2022.1.1 Patch 2系统下gradle.properties中文注释乱码

以前在 Windows系统上的 Android Studio 上编辑 gradle.properties 的时候增加了不少的中文注释,现在升级到 Android Studio Electric Eel | 2022.1.1 Patch 2 结果发现中文都变成乱码了。

原因是升级到 Android Studio Electric Eel | 2022.1.1 Patch 2 之后,Windows系统上 gradle.properties 的默认编码格式被设置成了 ISO-8859-1 ,导致文件显示乱码。

现在调整回 UTF-8 格式即可解决问题。如下图:

继续阅读解决Android Studio Electric Eel | 2022.1.1 Patch 2系统下gradle.properties中文注释乱码

The supplied javaHome seems to be invalid

Windows 11 系统 Android Studio 从低版本升级到 Android Studio Electric Eel | 2022.1.1 Patch 1 结果构建报错:

原因为 Android Studio Electric Eel | 2022.1.1 Patch 1 安装目录下存在 jre 文件夹的残留,需要移除这个残留目录即可解决问题。

参考链接


The supplied javaHome seems to be invalid

Android Studio 2020.3.1 编译报错 "Installed Build Tools revision 32.0.0 is corrupted"

最近,在使用升级老项目的 compileSdkVersion 32 进行 Android 12L适配的时候,报错

详细的报错信息如下:

报错产生的原因是从 Android SDK 31.0.0 开始,SDK里面的构建工具 dx.jar 被改名成 d8.jar,早期(7.x之前)的构建工具在尝试调用的时候找不到原来的的 dx.jar 导致报错。

解决方法有两种:

  1. 升级根目录下的 build.gradle 中的 'com.android.tools.build:gradle:4.1.3'7.0.4 以及以上的版本。
  2. 复制或者创建快捷方式把 d8.jar 复制并改名成 dx.jar

参考链接


Android Studio error "Installed Build Tools revision 31.0.0 is corrupted"

Missing essential plugin: org.jetbrains.android

今天升级到 Android Studio Arctic Fox | 2020.3.1 出现了如下错误:

继续阅读Missing essential plugin: org.jetbrains.android

Android Studio项目使用命令行运行测试

使用 Gradle 运行单元测试

借助 Android Plugin for Gradle,您可以通过命令行在 Gradle 项目中运行单元测试。如需详细了解如何为应用构建单元测试,请参阅构建有效的单元测试

下表总结了如何使用 Gradle 运行单元测试:

单元测试类型 要运行的命令 测试结果所在的位置
本地单元测试 调用test任务:

HTML 测试结果文件:path_to_your_project/module_name/build/reports/tests/目录。

XML 测试结果文件:path_to_your_project/module_name/build/test-results/目录。

插桩单元测试 调用 connectedAndroidTest 任务:

HTML 测试结果文件:path_to_your_project/module_name/build/reports/androidTests/connected/目录。

XML 测试结果文件:path_to_your_project/module_name/build/outputs/androidTest-results/connected/目录。

参考链接


使用命令行运行测试

修复Robolectric 4.6.x报错Failed to transform bcprov-jdk15on-1.68.jar

参照 Android Studio 3.6.3/4.0/4.1/4.2配置Robolectric-4.5.1,Powermock-1.6.6单元测试环境 配置执行单元测试。

项目使用 Android Studio 4.1.3 ,Android Gradle构建工具(AGP)版本

单元测试使用的 Robolectric4.5.x 升级到 4.6.x ,编译时产生如下报错:

问题排查了一下,发现 Robolectric 4.6.x 引入了 bcprov-jdk15on-1.68.jar ,这个库是使用 Java 15 编译的。

如果项目在 gradle.properties 中配置了 android.enableJetifier=true (目的是转换第三方不支持 AndroidX 的依赖,用以使整个工程升级到 AndroidX ), 当 Jetifier 小于等于 Jetifier 1.0.0-beta10时,无法反编译高于 Java 13 编译的代码库,进而引起上面的报错。

目前(2021/07/22)最新的 Android Studio 4.2.2 ,Android Gradle构建工具(AGP)版本

依旧没有完成适配工作。

官方回复是 Android Gradle构建工具(AGP) 7.x版本修复,估计要到Android Studio 4.3 版本了。

目前的解决方法是在 gradle.properties 中配置 Jetifier 忽略 bcprov 库。比较庆幸的是 bcprov 库跟 AndroidX 没什么关系,因此忽略这个库是安全的。

如下:

参考链接


关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决

关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决。

一般发生在 Robolectric 3.x 版本上,比如 Robolectric 3.8

解决方案:

打开对应模块的build.gradle文件

参考链接


关于Android Studio单元测试中“Method d in android.util.Log not mocked.”问题的解决。