把 Android SDK 从 C 盘搬到 F 盘后,在 Android Studio 中改了 SDK 路径,构建却仍在旧目录查找:

Failed to find target with hash string 'android-24'
in: C:\Users\...\Android\android-sdk

当时调整 ANDROID_HOME 也没有解决。既然构建反复读取同一个旧路径,我便在项目里搜索旧目录,最终找到了 local.properties。

检查真正参与构建的磁盘文件

这次最容易误导人的地方,是 IDE 中看到的配置已经是 F 盘,而从磁盘另行打开文件时仍然是 C 盘。修正磁盘文件后,构建恢复。

更可靠的排查方法是核对正在构建的工程根目录、文件保存状态和磁盘内容,而不是只根据一个设置窗口判断。打开了多个项目副本、编辑未保存或构建入口不同,都值得检查,不能仅凭这一次现象认定某个 IDE 缺陷。

local.properties 中的 sdk.dir

Android 工程的本地属性文件可以指定 SDK 位置。例如 Windows 路径使用正斜杠时,可以写成:

sdk.dir=F:/Android/sdk

这是路径示例,应替换为实际 SDK 目录。它指向 SDK 根目录,而不是某一个 platforms 或 build-tools 子目录。

local.properties 属于本机环境配置,不适合把个人绝对路径当成整个团队的通用设置。Android 构建配置说明

路径正确后,再看平台是否齐全

android-24 指向工程所需的平台目标。SDK 目录存在,不表示其中已经安装了相应平台。

因此分两步确认:先让构建读取正确的 SDK 根目录,再在 SDK Manager 中检查工程要求的平台和工具组件。不能因为缺一个平台,就随意改变项目的 compileSdk 或其他兼容性设置。

最后重新同步和构建,确认错误中不再出现旧路径。若仍读取旧目录,继续查环境变量、实际使用的工程副本和外部构建配置;不要把反复修改同一个界面设置当作已经验证生效。