Как вызвать Composable в другом модуле из MainActivityAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как вызвать Composable в другом модуле из MainActivity

Сообщение Anonymous »

У меня есть простое приложение с модулем библиотеки Android. Я учусь вызывать компоновку между модулями в Jetpack Compose. Как вы это делаете?
Вот MainActivity из модуля приложения:

Код: Выделить всё

class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
MyApplicationTheme {
// A surface container using the 'background' color from the theme
Surface(modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background) {
Column(modifier = Modifier.fillMaxSize()) {
Greeting("Android")
secondScreen.Asnackbar()
}

}
}
}
}
}

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
Text(
text = "Hello $name!",
modifier = modifier
)
}

а вот компоновка из файла в другом модуле библиотеки Android:

Код: Выделить всё

import androidx.compose.material3.Snackbar
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable

@Composable
fun Asnackbar(){
Snackbar {
Text("this is a snackbar")
}
}

Проект скомпилировался нормально, но при запуске на эмуляторе сразу же вылетел с этой ошибкой

Код: Выделить всё

java.lang.NoSuchMethodError: No virtual method Asnackbar(Landroidx/compose/runtime/Composer;I)V in class Lcom/example/second_screen/SecondScreen; or its super classes (declaration of 'com.example.second_screen.SecondScreen' appears in /data/data/com.example.myapplication/code_cache/.overlay/base.apk/classes2.dex)
ПРИМЕЧАНИЕ. Я нашел ответ. Это здесь. Можем ли мы создать нашу составную функцию в другой библиотеке для JetpackCompose?
Поэтому все, что мне нужно сделать, это добавить эти строки в мой модуль второго экрана:
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion '1.5.1'


Подробнее здесь: https://stackoverflow.com/questions/771 ... inactivity
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»