Kaynağa Gözat

修复构建脚本的解压问题

dengdx 1 gün önce
ebeveyn
işleme
93ce13c1f6
1 değiştirilmiş dosya ile 20 ekleme ve 3 silme
  1. 20 3
      .build/setup-android-sdk.js

+ 20 - 3
.build/setup-android-sdk.js

@@ -167,10 +167,27 @@ async function main() {
     // 1. 下载 SDK
     await downloadFile(SDK_URL, TEMP_ZIP);
     
-    // 2. 解压
-    extractZip(TEMP_ZIP, CMDLINE_TOOLS_DIR);
+    // 2. 解压到临时目录
+    const tempExtractDir = path.join(SDK_ROOT, 'cmdline-tools', 'temp');
+    extractZip(TEMP_ZIP, tempExtractDir);
     
-    // 3. 设置环境变量
+    // 3. 移动内部的 cmdline-tools 到 latest(ZIP 内部包含 cmdline-tools 目录)
+    const extractedCmdlineTools = path.join(tempExtractDir, 'cmdline-tools');
+    if (fs.existsSync(extractedCmdlineTools)) {
+      console.log('📦 重新组织目录结构...');
+      // 如果 latest 目录已存在,先删除
+      if (fs.existsSync(CMDLINE_TOOLS_DIR)) {
+        fs.rmSync(CMDLINE_TOOLS_DIR, { recursive: true, force: true });
+      }
+      fs.renameSync(extractedCmdlineTools, CMDLINE_TOOLS_DIR);
+      // 删除临时目录
+      fs.rmSync(tempExtractDir, { recursive: true, force: true });
+      console.log('✅ 目录结构已调整');
+    } else {
+      throw new Error(`解压后未找到 cmdline-tools 目录: ${extractedCmdlineTools}`);
+    }
+    
+    // 4. 设置环境变量
     setGitHubEnv('ANDROID_HOME', SDK_ROOT);
     setGitHubEnv('ANDROID_SDK_ROOT', SDK_ROOT);