## 在Android Studio中建立一个多平台项目
### 常用三方库:[KMM常用三方库地址](https://www.suzf.top/archives/kmmlibraries)
### 创建项目
1、Android Studio设置Plugins,搜索:**Kotlin Multiplatform Mobile**
![image.png](https://file.suzf.top/blog/image_1689428325414.png@blog)
2、创建一个KMM项目
![image.png](https://file.suzf.top/blog/image_1689428396245.png@blog)
3、新建项目,使用默认设置
![image.png](https://file.suzf.top/blog/image_1689428452354.png@blog)
4、选择 'Regular' 依赖管理,点击Finish,等待项目创建
![image.png](https://file.suzf.top/blog/image_1689428500418.png@blog)
---
### 设置项目参数
1、打开项目gradle.properties,指定Kotlin, AGP和Compose所需的版本。
```dls
kotlin.version=1.8.20
agp.version=8.0.1
compose.version=1.4.0
```
2、启用Compose Multiplatform:
```dls
org.jetbrains.compose.experimental.uikit.enabled=true
kotlin.native.cacheKind=none
```
![image.png](https://file.suzf.top/blog/image_1689428701188.png@blog)
---
3、配置项目级构建脚本
打开build.gradle.kts (project)并将插件块中的插件替换为以下内容:
```dls
kotlin("multiplatform").apply(false)
id("com.android.application").apply(false)
id("com.android.library").apply(false)
id("org.jetbrains.compose").apply(false)
```
4、配置Shared Module构建脚本
- 打开build.gradle.kts (shared)并执行以下操作:
- id("org.jetbrains.compose")在plugins
- 在baseName ="shared"下面加入++isStatic = true++
- 在sourceSets块中为共享代码添加Compose Multiplatform依赖项:
```dls
val commonMain by getting {
dependencies {
implementation(compose.runtime)
implementation(compose.foundation)
implementation(compose.material)
@OptIn(org.jetbrains.compose.ExperimentalComposeLibrary::class)
implementation(compose.components.resources)
}
}
```
![image.png](https://file.suzf.top/blog/image_1689429464043.png@blog)
---
5、配置Android Module构建脚本
- 转到build.gradle。并在插件块中添加Compose Multiplatform插件:
```dls
id("org.jetbrains.compose")
```
![image.png](https://file.suzf.top/blog/image_1689429121416.png@blog)
---
6、配置settings.gradle.kts (Project Settings)
**增加maven和plugins**
```dls
pluginManagement {
repositories {
google()
gradlePluginPortal()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}
plugins {
val kotlinVersion = extra["kotlin.version"] as String
val agpVersion = extra["agp.version"] as String
val composeVersion = extra["compose.version"] as String
kotlin("jvm").version(kotlinVersion)
kotlin("multiplatform").version(kotlinVersion)
kotlin("android").version(kotlinVersion)
id("com.android.application").version(agpVersion)
id("com.android.library").version(agpVersion)
id("org.jetbrains.compose").version(composeVersion)
}
}
dependencyResolutionManagement {
repositories {
google()
mavenCentral()
maven("https://maven.pkg.jetbrains.space/public/p/compose/dev")
}
}
rootProject.name = "MultiplatformApp"
include(":androidApp")
include(":shared")
```
![image.png](https://file.suzf.top/blog/image_1689429238245.png@blog)
7、同步项目
打造第一个 Compose 多平台应用(KMM)