背景
在最新的Android Studio中打开模块化项目时不能自动识别为gradle项目,导致Android Studio界面上不会有gradle面板不能方便的设置gradle为离线模式。
项目结构
pcrm/
├── .idea/ # Android Studio 配置目录
├── pcrm_flutter/ # Flutter 子项目
│ ├── android/ # Android 原生代码
│ │ ├── app/
│ │ └── build.gradle
│ ├── lib/ # Flutter Dart 代码
│ ├── build.gradle # Gradle 构建脚本
│ ├── gradlew # Gradle Wrapper
│ └── pubspec.yaml # Flutter 依赖配置
├── pcrm_backend/ # 其他子项目
└── pcrm_admin/ # 其他子项目解决方法
在根项目的 .idea 目录中创建和配置相关文件,使Android Studio识别子项目为 Gradle 项目。
步骤 1:创建 modules.xml
在 .idea 目录下创建 modules.xml,定义项目的模块结构:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/pcrm_flutter/pcrm_flutter.iml" filepath="$PROJECT_DIR$/pcrm_flutter/pcrm_flutter.iml" />
<module fileurl="file://$PROJECT_DIR$/pcrm_flutter/android/pcrm_flutter_android.iml" filepath="$PROJECT_DIR$/pcrm_flutter/android/pcrm_flutter_android.iml" />
</modules>
</component>
</project>说明:
- module 元素定义了每个模块的 .iml 文件路径
- .iml 文件是 Android Studio 的模块配置文件
- 使用 $PROJECT_DIR$ 变量引用项目根目录
步骤 2:创建 gradle.xml
在 .idea 目录下创建 gradle.xml,配置 Gradle 项目设置:
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GradleSettings">
<option name="linkedExternalProjectsSettings">
<GradleProjectSettings>
<option name="distributionType" value="DEFAULT_WRAPPED" />
<option name="externalProjectPath" value="$PROJECT_DIR$/pcrm_flutter" />
<option name="gradleHome" value="$PROJECT_DIR$/pcrm_flutter/gradle/wrapper" />
<option name="modules">
<set>
<option value="$PROJECT_DIR$/pcrm_flutter" />
<option value="$PROJECT_DIR$/pcrm_flutter/android" />
<option value="$PROJECT_DIR$/pcrm_flutter/android/app" />
</set>
</option>
<option name="resolveModulePerSourceSet" value="false" />
</GradleProjectSettings>
</option>
</component>
</project>关键配置项说明:
- distributionType: 使用 Gradle Wrapper(推荐方式)
- externalProjectPath: 指向 Flutter 子项目的根目录
- gradleHome: Gradle Wrapper 的位置
- modules: 列出所有需要被 Android Studio 识别的 Gradle 模块
- pcrm_flutter: Flutter 项目根模块
- pcrm_flutter/android: Android 原生代码模块
- pcrm_flutter/android/app: Android 应用模块
步骤 4:重启 Android Studio
完成上述配置后,重启 Android Studio 将:
1. 自动识别 Gradle 项目结构
2. 导入 Gradle 依赖
3. 在 Gradle 工具窗口显示项目模块
4. 提供完整的 Android 开发支持