Для создания пакета Jetpack требуется minSdkVersion
не менее 21. Поэтому добавьте / обновите следующее в вашем app/build.gradle
файле
android{
//...
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
//...
}
//...
}
Также вам необходимо использовать Android studio 4.1 (из канарского канала), чтобы использовать jetpack-compose.
Самый простой метод для существующих проектов
Примечание: В настоящее время (по состоянию на 2020-05-02) последняя версия Android Studio (4.1) находится под канарским каналом и использует устаревшую версию зависимостей для jetpack-compose, поэтому рекомендуется настраивать зависимости вручную, как описано в нижнем разделе этого ответа, пока Google не исправит это.
Шаг 1:
В окне проекта right click on the package you want to include the compose activity -> compose -> Empty compose activity
.
или
File -> new -> compose -> Empty compose activity.
Шаг 2
Появится диалоговое окно. Заполните обязательные поля и нажмите Finish
.
![enter image description here](https://i.stack.imgur.com/sK5sR.png)
Вот и все.
Ручная настройка для существующих проектов: рекомендуется сейчас, пока Android Studio не станет стабильным
Шаг 1: Используйте последнюю версию kotlin и подключаемые модули Gradle в вашем project/build.gradle
file.
Пример:
buildscript {
ext.kotlin_version = '1.3.71'
def compose_release_version = "dev10"
ext.compose_version = "0.1.0-$compose_release_version"
ext.compose_compiler_extension_version = "0.1.0-$compose_release_version"
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:4.1.0-alpha08'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
allprojects {
repositories {
google()
jcenter()
}
}
В вашем project/app/build.gradle
добавьте следующее
android{
//...
defaultConfig {
minSdkVersion 21
targetSdkVersion 29
//...
}
//...
kotlinOptions {
jvmTarget = "1.8"
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerVersion "1.3.70-dev-withExperimentalGoogleExtensions-20200424"
kotlinCompilerExtensionVersion "$compose_compiler_extension_version"
}
}
dependencies {
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version")
implementation("androidx.compose:compose-runtime:$compose_version")
implementation("androidx.ui:ui-framework:$compose_version")
implementation("androidx.ui:ui-layout:$compose_version")
implementation("androidx.ui:ui-material:$compose_version")
implementation("androidx.ui:ui-foundation:$compose_version")
implementation("androidx.ui:ui-animation:$compose_version")
implementation "androidx.ui:ui-tooling:$compose_version"
implementation('androidx.appcompat:appcompat:1.1.0')
implementation('androidx.activity:activity-ktx:1.1.0')
implementation "androidx.core:core-ktx:1.2.0"
}
Шаг 2: Добавьте композицию действие в ваш файл манифеста.
<application
android:label="@string/app_name"
<!-- ... -->
>
<activity
android:name=".ui.MainComposeActivity"
android:label="@string/title_activity_main_compose"
android:theme="@style/Theme.ComposeExperiment.NoActionBar">
</activity>
<!-- ... -->
</application>
Шаг 3:
Создайте задание, составленное из реактивного пакета.
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import androidx.compose.Composable
import androidx.ui.foundation.Text
import androidx.ui.core.setContent
import androidx.ui.material.MaterialTheme
import androidx.ui.tooling.preview.Preview
class MainComposeActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MaterialTheme {
Greeting("Android")
}
}
}
}
@Composable
fun Greeting(name: String) {
Text(text = "Hello $name!")
}
@Preview
@Composable
fun DefaultPreview() {
MaterialTheme {
Greeting("Android")
}
}
![enter image description here](https://i.stack.imgur.com/xXJUV.png)
![enter image description here](https://i.stack.imgur.com/56ivf.png)
Вот и все. Удачного кодирования:)