実現したいこと
画像とテキストを表示する初歩的なアプリを作りたい。
発生している問題・分からないこと
リンク内容
上記サイトであるDeveloper.Androidの初心者向けトレーニングコースに取り組んでいます。
「2.実践Compose記事」という課題です。
前の段階で画像とテキストを表示するアプリを作成したので、そのコードを流用すればいいと思いコピペして使ったのですが、そのアプリで使用されていたはずの「HappyBirthdayTheme」というところでエラーが出ます。この部分はコピペしただけでほとんど触っていないのにエラーが出ます。
なぜエラーが出るのでしょうか。また、解決方法についても教えていただきたいです。
エラーメッセージ
error
1Unresolved reference 'HappyBirthdayTheme'
該当のソースコード
package com.example.compose import android.os.Bundle import androidx.activity.ComponentActivity import androidx.activity.compose.setContent import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme.colorScheme import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { HappyBirthdayTheme { Surface( modifier = Modifier.fillMaxSize(), color = MaterialTheme.colorScheme.background ) { GreetingImage( title = stringResource(R.string.jetpack_compose_tutorial), first = stringResource(R.string.jetpack_compose_is_a_modern_toolkit_for_building_native_android_ui_compose_simplifies_and_accelerates_ui_development_on_android_with_less_code_powerful_tools_and_intuitive_kotlin_apis), second = stringResource(R.string.in_thi), modifier = Modifier . padding (8.dp) ) } } } } } @Composable fun GreetingText(title: String, first: String, second: String, modifier: Modifier = Modifier) { Column(verticalArrangement = Arrangement.Center,modifier = modifier.padding(8.dp)) { Text( text = title, fontSize = 100.sp, lineHeight = 116.sp, textAlign = TextAlign.Center ) Text( text = first, fontSize = 36.sp, modifier = Modifier .padding(16.dp) .align(alignment = Alignment.CenterHorizontally) ) Text( text = second, fontSize = 36.sp, modifier = Modifier .padding(16.dp) .align(alignment = Alignment.CenterHorizontally) ) } } @Composable fun GreetingImage(title: String, second: String, modifier: Modifier = Modifier, first: String) { val image = painterResource(R.drawable.androidparty__2_) Box(modifier) { Image( painter = image, contentDescription = null, contentScale = ContentScale.FillWidth, alpha = 0.5F ) GreetingText( title = title, second = second, first = first, modifier = Modifier .fillMaxSize() .padding(8.dp) ) } } @Preview(showBackground = true) @Composable fun BirthdayCardPreview() { HappyBirthdayTheme { GreetingImage(title = "Happy Birthday Sam!",first = "From Emma",second = "aa") } }
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
エラーコードをネット検索したのですが、「定義がされていない」?ようなときに出ることはわかりました。(誤字など)
誤字はなさそうです。
確かに@コンポーズもつけていないし、パスカルケースを使用してこっちでつけた名前なのでなにか作業が必要なのかな、と思いましたが、その必要な作業がわかりませんでした。
補足
プログラミングについてはc言語の基礎を大学で習ったのと、JavaScriptを10時間ほど独学した程度の初学者です。回答について理解できない点があればすみません。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/11/18 02:09