这份记录从一个空白的 Flutter 项目开始,讲清楚三件事:
- 代码写在哪、应用名字在哪改
- 怎么让 Gradle 用本地的、不去网上重复下载
- 怎么编译成 APK 装到手机上
示例项目名叫 demo_flutter_android。编译命令是:
flutter build apk --target-platform android-arm64
一、代码写在 lib 文件夹里
Flutter 的代码文件后缀是 .dart,全部放在项目的 lib 文件夹里。文件名随便起,比如 main.dart。
让应用名字变成中文
用记事本打开这个文件:
android/app/src/main/AndroidManifest.xml
找到这一行,把引号里的内容改成你想要的名字:
android:label="demo_flutter_android"
二、让 Gradle 用本地的,别重复下载
第一次编译时,Gradle 会去网上下载一大包东西,很慢,还经常断。
解决办法是提前把 Gradle 压缩包下到本地,然后告诉项目去本地取。
第 1 步,用记事本打开:
android/gradle/wrapper/gradle-wrapper.properties
第 2 步,找到 distributionUrl 那一行,改成指向本地文件,比如:
distributionUrl=file:///C:/gradle-8.14-all.zip
(路径按你自己放的位置改,注意用正斜杠 /。)
第 3 步,如果本地还没有 Gradle 压缩包,去腾讯云镜像下载:
<https://mirrors.cloud.tencent.com/gradle/>
进去选中你需要的版本下载就行。
三、常用编译命令
编译 APK(在项目目录下执行):
flutter build apk
如果希望生成按 CPU 架构拆分后的 APK(体积更小,但一个包只能装对应机型的手机):
flutter build apk --split-per-abi
编译完成后,APK 文件在这个位置:
build/app/outputs/flutter-apk/app-release.apk
直接安装到手机:
flutter install
四、写一个简单的例子
打开 lib 文件夹,把 main.dart 的内容换成下面这段,就是一个能跑的「点我弹窗」应用:
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '弹窗 Demo',
debugShowCheckedModeBanner: false, // 加这行,关掉右上角的调试标签
theme: ThemeData(
colorScheme: ColorScheme.fromSeed(seedColor: Colors.deepPurple),
),
home: const MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
const MyHomePage({super.key});
// 弹出信息框
void _showMessage(BuildContext context) {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: const Text('提示'),
content: const Text('你好,世界!'),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: const Text('确定'),
),
],
);
},
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('弹窗 Demo'),
backgroundColor: Theme.of(context).colorScheme.inversePrimary,
),
body: Center(
child: ElevatedButton(
onPressed: () => _showMessage(context),
child: const Text('点我弹窗'),
),
),
);
}
}
改完存盘,回到项目目录执行 flutter build apk,就能装到手机上看效果了。