Учебник по Android вызывает проблемы с рендерингом при добавлении изображенияAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Учебник по Android вызывает проблемы с рендерингом при добавлении изображения

Сообщение Anonymous »


Я работаю над руководством по разработке для Android под названием «Основы Android с помощью Compose» в разделе «Первое приложение для Android» > «Базовый макет» > часть 4 «Добавление изображений в приложение Android» > раздел 3 «Добавление составного изображения» (https://developer.android.com/courses/p ... -pathway-3). Я загрузил png «android.party» и, насколько я понимаю, успешно импортировал его, чтобы видеть его в своем каталоге «res > drawable», где, как сказано в руководстве, он должен быть. До этого момента я успешно воспроизвел все, что было в руководстве.

Эта проблема возникает, когда я начинаю следовать инструкциям, чтобы сделать это изображение фоном. Как только я создаю компонуемое изображение в соответствии с инструкциями и вызываю его в предварительном просмотре, предварительный просмотр больше не отображается, сообщая мне: «При попытке визуализировать этот предварительный просмотр возникли некоторые проблемы».

Мой код в "java > com.example.happybirthday > ui.theme > MainActivity.kt":

пакет com.example.happybirthday импортировать android.os.Bundle импортировать androidx.activity.ComponentActivity импортировать androidx.activity.compose.setContent импортировать androidx.compose.foundation.Image импортировать androidx.compose.foundation.layout.Arrangement импортировать androidx.compose.foundation.layout.Column импортировать androidx.compose.foundation.layout.fillMaxSize импортировать androidx.compose.foundation.layout.padding импортировать androidx.compose.material3.MaterialTheme импортировать androidx.compose.material3.Surface импортировать androidx.compose.material3.Text импортировать androidx.compose.runtime.Composable импортировать androidx.compose.ui.Alignment импортировать androidx.compose.ui.Modifier импортировать androidx.compose.ui.res.painterResource импортировать androidx.compose.ui.text.style.TextAlign импортировать androidx.compose.ui.tooling.preview.Preview импортировать androidx.compose.ui.unit.dp импортировать androidx.compose.ui.unit.sp импортировать com.example.happybirthday.ui.theme.HappyBirthdayTheme класс MainActivity : ComponentActivity() { переопределить fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { HappyBirthdayTheme { // Поверхностный контейнер, использующий цвет фона из темы Поверхность( модификатор = Модификатор.fillMaxSize(), цвет = MaterialTheme.colorScheme.background ) { GreetingText(message = «С Днем Рождения, Сэм!», from = «От Эммы») } } } } } @Композитный fun GreetingText (сообщение: String, from: String, модификатор: Modifier = Modifier) ​​{ Столбец( вертикальноеРасположение = Расположение.Центр, модификатор = модификатор ) { Текст( текст = сообщение, размер шрифта = 100.сп, lineHeight = 116.sp, textAlign = TextAlign.Центр ) Текст( текст = откуда, размер шрифта = 36.sp, модификатор = Модификатор .padding(16.dp) .align(выравнивание = Выравнивание.Конец) ) } } @Композитный fun GreetingImage (сообщение: String, from: String, модификатор: Modifier = Modifier) ​​{ val image =painterResource(R.drawable.androidparty) Изображение( художник = изображение, contentDescription = ноль ) } @Preview(showBackground = true) @Композитный весело BirthdayCardPreview() { HappyBirthdayTheme { GreetingImage(message = «С Днем Рождения, Сэм!», from = «От Эммы») } } Трассировка стека для «Проблемы рендеринга»:

java.lang.NoSuchFieldError: androidparty   на com.example.happybirthday.MainActivityKt.GreetingImage(MainActivity.kt:65)   на com.example.happybirthday.ComposableSingletons$MainActivityKt$lambda-4$1.invoke(MainActivity.kt:76)   на com.example.happybirthday.ComposableSingletons $MainActivityKt$lambda-4$1.invoke(MainActivity.kt:75)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke( ComposableLambda.jvm.kt:34)   в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.material3.TextKt.ProvideTextStyle(Text.kt:261)   в androidx.compose.material3.MaterialThemeKt $MaterialTheme$1.invoke(MaterialTheme.kt:81)   в androidx.compose.material3.MaterialThemeKt$MaterialTheme$1.invoke(MaterialTheme.kt:80)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt :107)  в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)   в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.material3.MaterialThemeKt. MaterialTheme(MaterialTheme.kt:73)  на com.example.happybirthday.ui.theme.ThemeKt.HappyBirthdayTheme(Theme.kt:65)  на com.example.happybirthday.MainActivityKt.BirthdayCardPreview(MainActivity.kt:75)  на jdk.internal .reflect.NativeMethodAccessorImpl.invoke0(NativeMethodAccessorImpl.java:-2)   в jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)   в jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43)   в Java .lang.reflect.Method.invoke(Method.java:568)  в androidx.compose.ui.tooling.ComposableInvoker.invokeComposableMethod(ComposableInvoker.kt:155)  в androidx.compose.ui.tooling.ComposableInvoker.invokeComposable(ComposableInvoker.kt) :195)   at androidx.compose.ui.tooling.ComposeViewAdapter$init$3$1$composable$1.invoke(ComposeViewAdapter.kt:711)   at androidx.compose.ui.tooling.ComposeViewAdapter$init$3$1$composable$1.invoke(ComposeViewAdapter .kt:709)   в androidx.compose.ui.tooling.ComposeViewAdapter$init$3$1.invoke(ComposeViewAdapter.kt:746)   в androidx.compose.ui.tooling.ComposeViewAdapter$init$3$1.invoke(ComposeViewAdapter.kt:704) )   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)   в androidx.compose.runtime. CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.ui.tooling.InspectableKt.Inspectable(Inspectable.kt:61)  в androidx.compose.ui.tooling.ComposeViewAdapter$WrapPreview$1.invoke(ComposeViewAdapter.kt:651) )   в androidx.compose.ui.tooling.ComposeViewAdapter$WrapPreview$1.invoke(ComposeViewAdapter.kt:650)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime .internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)   в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.ui.tooling.ComposeViewAdapter.WrapPreview(ComposeViewAdapter.kt:645) )   в androidx.compose.ui.tooling.ComposeViewAdapter.access$WrapPreview(ComposeViewAdapter.kt:135)   в androidx.compose.ui.tooling.ComposeViewAdapter$init$3.invoke(ComposeViewAdapter.kt:704)   в androidx.compose.ui .tooling.ComposeViewAdapter$init$3.invoke(ComposeViewAdapter.kt:701)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke( ComposableLambda.jvm.kt:34)   в androidx.compose.ui.platform.ComposeView.Content(ComposeView.android.kt:404)   в androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt :250)   at androidx.compose.ui.platform.AbstractComposeView$ensureCompositionCreated$1.invoke(ComposeView.android.kt:249)   at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   at androidx .compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)   в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.ui.platform.CompositionLocalsKt.ProvideCommonCompositionLocals(CompositionLocals) .kt:177)   в androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLocals.android.kt:123)   в androidx.compose.ui.platform.AndroidCompositionLocals_androidKt$ProvideAndroidCompositionLocals$3.invoke(AndroidCompositionLo Cals.android.kt :122)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34) в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.ui.platform.AndroidCompositionLocals_androidKt.ProvideAndroidCompositionLocals(AndroidCompositionLocals.android.kt:114)   в androidx.compose.ui.platform.WrappedComposition$setContent $1$1$3.invoke(Wrapper.android.kt:157)   в androidx.compose.ui.platform.WrappedComposition$setContent$1$1$3.invoke(Wrapper.android.kt:156)   в androidx.compose.runtime.internal.ComposableLambdaImpl .invoke(ComposableLambda.jvm.kt:107)   в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)   в androidx.compose.runtime.CompositionLocalKt.CompositionLocalProvider(CompositionLocal.kt:228)   в androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.android.kt:156)   at androidx.compose.ui.platform.WrappedComposition$setContent$1$1.invoke(Wrapper.android.kt:140)   at androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:107)  в androidx.compose.runtime.internal.ComposableLambdaImpl.invoke(ComposableLambda.jvm.kt:34)  в androidx.compose.runtime.ActualJvm_jvmKt. ignoreComposable(ActualJvm.jvm.kt:78)   в androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt:3248)   в androidx.compose.runtime.ComposerImpl$doCompose$2$5.invoke(Composer.kt: 3238)   в androidx.compose.runtime.SnapshotStateKt__DerivedStateKt.observeDerivedStateRecalculations(DerivedState.kt:341)  в androidx.compose.runtime.SnapshotStateKt.observeDerivedStateRecalculations  в androidx.compose.runtime.ComposerImpl.doCompose(Composer. kt:3238)   на androidx.compose .runtime.ComposerImpl.composeContent$runtime_release(Composer.kt:3173)   в androidx.compose.runtime.CompositionImpl.composeContent(Composition.kt:587)   в androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:950)  в androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:519)   в androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:140)   в androidx.compose.ui.platform .WrappedComposition$setContent$1.invoke(Wrapper.android.kt:131)   в androidx.compose.ui.platform.AndroidComposeView.setOnViewTreeOwnersAvailable(AndroidComposeView.android.kt:1060)   в androidx.compose.ui.platform.WrappedComposition.setContent( Wrapper.android.kt:131)   в androidx.compose.ui.platform.WrappedComposition.onStateChanged(Wrapper.android.kt:182)   в androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:360)   в androidx.lifecycle .LifecycleRegistry.addObserver(LifecycleRegistry.java:202)   в androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:138)   в androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke (Wrapper.android.kt:131)  в androidx.compose.ui.platform.AndroidComposeView.onAttachedToWindow(AndroidComposeView.android.kt:1147)  в android.view.View.dispatchAttachedToWindow(View.java:21291)  в android.view. ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3491)  в android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3498)  в android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3498)  в android.view.ViewGroup .dispatchAttachedToWindow(ViewGroup .java:3498)  в android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3498)   в android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3498)   в android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Ac) cessor.java:58) Я новичок в разработке под Android и использую Android Studio, поэтому наивно полагал, что проблема связана с тем, что у меня установлена ​​более новая версия Android Studio (Hedgehog; 2023.1.1), поскольку я считаю, что руководство было создано с помощью Версия Фламинго (2022.2.1). Разумеется, удаление новой версии и повторная установка старой ничего не исправили.

Я действительно не знаю, что я мог бы сделать иначе, чем в учебнике, но наверняка я делаю что-то странное, и я с радостью поделюсь любыми деталями, которые могут быть подсказками. Копирование всего кода непосредственно из раздела 9 этой части «Получение кода решения» ничего не исправляет, поэтому, вероятно, это не на этом этапе. У меня Windows 10.

Спасибо!
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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