Не удалось найти «kotlinPlugin» и «darkThemeColors» - PullRequest
1 голос
/ 25 октября 2019

Пока я пытался использовать библиотеку compet для jetpack, я застрял на том, что следовал шагу, упомянутому в документации для jetpack (источник: https://developer.android.com/jetpack/compose/setup#compose-compiler). Мне не удалось использовать kotlinPlugin, поскольку я получил следующее исключение.

Caused by: org.gradle.internal.metaobject.AbstractDynamicObject$CustomMessageMissingMethodException: Could not find method kotlinPlugin() for arguments [androidx.compose:compose-compiler:0.1.0-dev02] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

Кроме того, я не смог использовать darkThemeColors и lightThemeColors . Ниже приведены зависимости Gradle, которые я добавил.

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    kotlinPlugin "androidx.compose:compose-compiler:0.1.0-dev02"
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.core:core-ktx:1.1.0'
    implementation 'androidx.ui:ui-framework:0.1.0-dev02'
    implementation 'androidx.ui:ui-layout:0.1.0-dev02'
    implementation 'androidx.ui:ui-material:0.1.0-dev02'
    implementation 'androidx.ui:ui-tooling:0.1.0-dev02'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    implementation 'org.jetbrains.kotlin:kotlin-reflect:1.3.50'
}

Я пропустил какие-либоЗависимость? Я проверил MaterialTheme и MaterialColors классы, но не нашел darkThemeColors и lightThemeColors.

Ответы [ 2 ]

2 голосов
/ 25 октября 2019

В jetpackCompose образец приложения jetnews darkThemeColors и lightThemeColors определяют в Themes.kt файле, как пример ниже, поэтому вам нужно определить цвета.

val lightThemeColors = MaterialColors(
    primary = Color(0xFFDD0D3C),
    primaryVariant = Color(0xFFC20029),
    onPrimary = Color.White,
    secondary = Color.White,
    onSecondary = Color.Black,
    background = Color.White,
    onBackground = Color.Black,
    surface = Color.White,
    onSurface = Color.Black,
    error = Color(0xFFD00036),
    onError = Color.White
)

/**
 * Note: Dark Theme support is not yet available, it will come in 2020. This is just an example of
 * using dark colors.
 */
val darkThemeColors = MaterialColors(
    primary = Color(0xFFEA6D7E),
    primaryVariant = Color(0xFFDD0D3E),
    onPrimary = Color.Black,
    secondary = Color(0xFF121212),
    onSecondary = Color.White,
    surface = Color(0xFF121212),
    background = Color(0xFF121212),
    onBackground = Color.White,
    onSurface = Color.White
) 

В скриншоте ниже jetnewsпроект enter image description here Для jetnews образец проверьте эту ссылку https://developer.android.com/jetpack/compose/setup#sample

1 голос
/ 25 октября 2019

О darkThemeColors и lightThemeColors.
Вы можете определить их, как хотите.

Просто используйте что-то вроде:

val customSurface = Color(0xFF21212F.toInt())
private val lightThemeColors = MaterialColors(
    primary = Color(0xFFDD0D1F),
    surface = customSurface,
    onSurface = Color.Black
)

Тогда в вашем коде

setContent {
   MaterialTheme(colors = lightThemeColors) {
   // Greeting("Android")
   }
}
...