Windows 10 Android 构建配置指南

Windows 10 Android 构建配置指南

本文档记录在 Windows 10 上构建 Android APK 的环境配置、依赖安装和常见问题解决。

环境信息

组件 版本
操作系统 Windows 10 专业版 22H2
Flutter 3.38.9 (Dart 3.10.8)
Java 1.8.0_301 + OpenJDK 21 (Android Studio 自带)
Android SDK 36.1.0
Gradle 8.13
Android Gradle Plugin 8.1.0
Kotlin 1.9.10

环境配置步骤

1. 安装 Flutter

powershell 复制代码
# 下载 Flutter SDK
# https://docs.flutter.dev/get-started/install/windows

# 添加到环境变量
# Path += H:\flutter\bin

2. 安装 Android Studio

3. 配置 Android SDK 路径

powershell 复制代码
# 告诉 Flutter Android SDK 的位置
flutter config --android-sdk "H:\Android\Sdk"

4. 接受 Android 许可证

powershell 复制代码
flutter doctor --android-licenses
# 对每个许可证输入 y 接受

5. 验证环境

powershell 复制代码
flutter doctor

依赖配置

pubspec.yaml 关键依赖

yaml 复制代码
dependencies:
  flutter:
    sdk: flutter

  # State Management
  provider: ^6.1.1

  # Local Storage
  sqflite: ^2.4.0
  path_provider: ^2.1.4
  shared_preferences: ^2.3.0

  # Internationalization
  intl: ^0.20.2
  flutter_localizations:
    sdk: flutter

  # Utils
  uuid: ^4.3.1

Android 配置文件

gradle.properties

properties 复制代码
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G -Dfile.encoding=UTF-8
android.useAndroidX=true
android.enableJetifier=true

注意: 默认内存配置 -Xmx768M -XX:MaxMetaspaceSize=256M 会导致内存不足错误。

gradle-wrapper.properties

properties 复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip

build.gradle.kts (项目级)

kotlin 复制代码
buildscript {
    ext.kotlin_version = "1.9.10"
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle:8.1.0")
        classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version")
    }
}

app/build.gradle.kts

kotlin 复制代码
android {
    namespace = "com.bucketlist.bucketList"
    compileSdk = 34

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = JavaVersion.VERSION_17.toString()
    }

    defaultConfig {
        applicationId = "com.bucketlist.bucketList"
        minSdk = 21
        targetSdk = 34
        versionCode = 1
        versionName = "1.0.0"
    }
}

构建命令

powershell 复制代码
# 安装依赖
flutter pub get

# 清理构建缓存(出现问题时使用)
flutter clean

# 构建 Release APK
flutter build apk --release

# APK 输出位置
# build\app\outputs\flutter-apk\app-release.apk

常见问题与解决方案

1. cmdline-tools 组件缺失

错误信息:

复制代码
cmdline-tools component is missing

解决方案:

在 Android Studio 中安装:

  1. Tools → SDK Manager
  2. SDK Tools 选项卡
  3. 勾选 Android SDK Command-line Tools (latest)
  4. 点击 Apply 安装

2. Android SDK Platform 缺失

错误信息:

复制代码
Could not determine the dependencies of task ':sqflite:compileReleaseJavaWithJavac'.
Failed to install the following SDK components: platforms;android-33

解决方案:

在 Android Studio 的 SDK Manager 中安装 Android 13.0 (API 33)

3. 依赖版本冲突

错误信息:

复制代码
Because every version of flutter_localizations from sdk depends on intl 0.20.2
and bucket_list depends on intl ^0.18.1, flutter_localizations from sdk is forbidden.

解决方案:

更新 pubspec.yaml 中的 intl 版本:

yaml 复制代码
intl: ^0.20.2

然后运行:

powershell 复制代码
flutter pub get

4. CardTheme 类型错误

错误信息:

复制代码
The argument type 'CardTheme' can't be assigned to the parameter type 'CardThemeData?'.

解决方案:

修改 lib/utils/app_theme.dart:

dart 复制代码
// 错误
cardTheme: CardTheme(...)

// 正确
cardTheme: CardThemeData(...)

5. path_provider_android 编译错误

错误信息:

复制代码
error: cannot find symbol
PluginRegistry.Registrar registrar

解决方案:

powershell 复制代码
# 升级依赖到最新版本
flutter pub upgrade --major-versions

6. ic_launcher_foreground 资源缺失

错误信息:

复制代码
resource mipmap/ic_launcher_foreground not found

解决方案:

删除 adaptive-icon 配置:

powershell 复制代码
rm -rf android/app/src/main/res/mipmap-anydpi-v26

7. Kotlin 增量编译缓存损坏

错误信息:

复制代码
Could not close incremental caches
this and base files have different roots

解决方案:

powershell 复制代码
flutter clean
flutter build apk --release

8. 内存不足 (OutOfMemoryError)

错误信息:

复制代码
java.lang.OutOfMemoryError: Metaspace

解决方案:

修改 android/gradle.properties:

properties 复制代码
# 从
org.gradle.jvmargs=-Xmx768M -XX:MaxMetaspaceSize=256M

# 改为
org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=1G

9. Gradle 版本过低

错误信息:

复制代码
Minimum supported Gradle version is 8.13. Current version is 8.3

解决方案:

修改 android/gradle/wrapper/gradle-wrapper.properties:

properties 复制代码
distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-all.zip

Flutter Doctor 正常输出

复制代码
[√] Flutter (Channel stable, 3.38.9)
[√] Windows Version (10 专业版 64 位, 22H2, 2009)
[√] Android toolchain - develop for Android devices (Android SDK version 36.1.0)
[√] Chrome - develop for the web
[√] Connected device
[√] Network resources

输出信息

APK 路径: build\app\outputs\flutter-apk\app-release.apk

示例输出:

复制代码
√ Built build\app\outputs\flutter-apk\app-release.apk (49.4MB)

相关文档

相关推荐
小羊没烦恼!4 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
rockmelodies4 天前
# Windows Server2008 R2 Standard(SP1镜像U盘)重置本地管理员密码【完整详细步骤】
windows·密码破解
千里马学框架4 天前
一起学 Android 14:ShellTransition 屏幕旋转过程深度剖析
android·智能手机·性能优化·framework·性能·屏幕旋转·rotation
美狐美颜SDK开放平台4 天前
开发直播APP时如何接入视频美颜SDK?开发流程与注意事项
android·人工智能·计算机视觉·音视频·直播美颜sdk
AFinalStone4 天前
Android7 SystemUI源码解析(七)Keyguard锁屏模块深度解析
android·systemui
致远ccc4 天前
Google Play 上架前如何测试 App?多国家 Android 环境测试
android·app测试·googleplay·多国家应用测试
ttyyttemo4 天前
Kotlin 协程中的 Job 结构化并发与取消
android
sun0077004 天前
tbox 4g/5g切换,导致wan ip 改变,导致车机旧网络不可用。需要重启车机才行
android
其实防守也摸鱼4 天前
内网穿透与反向代理:原理、工具与实战指南
android·大数据·运维·安全·网络安全·自动化·渗透
AFinalStone5 天前
Android7 SystemUI 源码解析(四)NavigationBar 导航栏与 SystemBars
android·systemui