创建第一个项目
本教程共 100 篇 · 第 7 篇 · 更新于 2026-07-28 · 约 7 分钟阅读
7. 创建第一个项目
本节目标:用 Android Studio 创建第一个 Compose 项目,跑起来看到「Hello Android」,并搞懂生成的文件都是干什么的。
第 1 步:打开新建项目向导
启动 Android Studio,在欢迎界面点 New Project。如果已经打开了一个项目,菜单 File -> New -> New Project。
第 2 步:选模板
弹出 New Project 窗口,左边是模板分类(Phone and Tablet、Wear OS、TV、Automotive),右边是具体模板。
我们选 Phone and Tablet 下的 Empty Activity(注意是新版那个,叫 “Empty Activity” 带 Compose 标识的,不是 “Empty Views Activity”)。
NoteAndroid 16 时代的 Android Studio,默认的 Empty Activity 模板就是基于 Jetpack Compose 的。如果你想用传统 XML 写界面,才选 “Empty Views Activity”。本教程以 Compose 为主线,所以选 Empty Activity。
点 Next。
第 3 步:填项目信息
这一页要填几个关键字段:
- Name:应用名称,用户能在桌面看到,比如
My First App。 - Package name:包名,应用唯一标识,反域名格式,比如
com.example.myfirstapp。包名一旦定了很难改,上架后就不能改了。 - Save location:项目保存路径,别带中文和空格。
- Language:Kotlin(默认就是,本教程只用 Kotlin)。
- Minimum SDK:最低支持版本。选 API 24(覆盖 95%+ 设备),或按你需求选。Compose 最低支持 API 21。
- Build configuration language:选 Kotlin DSL(用
build.gradle.kts),这是现在推荐的方式,比老式 Groovy 更现代。
填完点 Finish。
Tip包名建议用你自己拥有的域名反过来写,没有域名就用
com.你的名字.项目名。别用com.example上架,这是 Google 保留的演示包名。
第 4 步:等 Gradle 同步
点 Finish 后 Android Studio 开始创建项目、下载依赖、同步 Gradle。第一次比较慢,可能几分钟,取决于网络。
底部状态栏会显示进度。等到底部 Build 输出显示 BUILD SUCCESSFUL 或没有进度条了,就可以开始写代码了。
如果卡在下载依赖,多半是网络问题:
- 配代理:
Settings->HTTP Proxy。 - 用国内镜像:在
settings.gradle.kts里加阿里云镜像仓库(后面 Gradle 章会讲)。
第 5 步:认识生成的项目结构
项目创建好后,左侧切到 Android 视图,能看到这样的结构:
app/
├── manifests/
│ └── AndroidManifest.xml ← 应用清单
├── java/com.example.myfirstapp/
│ ├── MainActivity.kt ← 主 Activity
│ └── ui/theme/
│ ├── Color.kt ← 颜色定义
│ ├── Theme.kt ← 主题
│ └── Type.kt ← 字体定义
└── res/
├── drawable/ ← 图片
├── mipmap-*/ ← 应用图标(多分辨率)
├── values/
│ ├── strings.xml ← 字符串
│ └── themes.xml ← 主题 XML
└── xml/
├── backup_rules.xml
└── data_extraction_rules.xml
Gradle Scripts/
├── build.gradle.kts (Project) ← 项目级构建脚本
├── build.gradle.kts (Module :app) ← 模块级构建脚本
└── settings.gradle.kts ← 项目设置
MainActivity.kt
这是应用的入口,长这样:
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyFirstAppTheme {
// A surface container using the background color from the theme
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Greeting("Android")
}
}
}
}
}
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}
@Preview(showBackground = true)
@Composable
fun GreetingPreview() {
MyFirstAppTheme {
Greeting("Android")
}
}
关键点先扫一眼,不用全懂:
MainActivity继承自ComponentActivity,是 Compose 用的 Activity 基类。setContent { ... }里写 Compose 界面,替代传统setContentView(R.layout.xxx)。@Composable注解标记的函数是可组合函数(Composable Function),描述界面。@Preview注解的函数能在编辑器右侧实时预览,不用运行。
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyFirstApp">
<activity
android:name=".MainActivity"
android:exported="true"
android:theme="@style/Theme.MyFirstApp">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
清单声明了应用有一个 MainActivity,并且它是启动入口(MAIN + LAUNCHER)。点桌面图标就是启动这个 Activity。
build.gradle.kts (Module :app)
模块级构建脚本,声明依赖和构建配置:
plugins {
alias(libs.plugins.android.application)
alias(libs.plugins.kotlin.android)
alias(libs.plugins.compose.compiler)
}
android {
namespace = "com.example.myfirstapp"
compileSdk = 36
defaultConfig {
applicationId = "com.example.myfirstapp"
minSdk = 24
targetSdk = 36
versionCode = 1
versionName = "1.0"
}
// ...
}
dependencies {
implementation(libs.androidx.core.ktx)
implementation(platform(libs.androidx.compose.bom))
implementation(libs.androidx.activity.compose)
implementation(libs.androidx.ui)
implementation(libs.androidx.material3)
// ...
}
这里 libs.xxx 是用 Version Catalog(libs.versions.toml)统一管理依赖版本,比直接写版本号清晰。
第 6 步:改一下试试
把 Greeting 函数里的文本改成你自己的:
@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "你好,$name!这是我的第一个 Android 应用。",
modifier = modifier
)
}
然后 MainActivity 里调用改成:
Greeting("世界")
编辑器右侧如果有 Preview 面板,能看到实时变化。没有的话点右上角三个点 -> Preview 开启。
第 7 步:运行
顶部工具栏选好设备(模拟器或真机),点绿色三角 Run 按钮。下一节专门讲运行和调试,这里先让它跑起来看到「你好,世界」就行。
常见问题
同步失败:找不到依赖
网络问题。配代理或换镜像源。
编译报错:SDK not found
compileSdk 设了 36 但 SDK 里没装 Android 16 Platform。SDK Manager 里勾选 Android 16 装上。
包名想改
新项目最好一开始就定好。改了之后:Build -> Clean Project,再 Build -> Rebuild Project。
小结
用 Empty Activity 模板创建项目,填好 Name、包名、Minimum SDK,等 Gradle 同步完成。生成的项目里 MainActivity.kt 是入口,setContent 里写 Compose 界面,AndroidManifest.xml 声明组件,build.gradle.kts 管依赖。下一节让它真正跑起来,并学调试。