質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

1回答

250閲覧

MainActivityが起動しない

mimimimimi_

総合スコア5

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2024/04/22 15:00

編集2024/04/22 15:51

実現したいこと

ビルド時に起動はされるのですが、アプリが立ち上がらないです。
Logcatを確認したところエラーが発生していました。
アプリ立ち上げまでお力添えいただきたいです。

発生している問題・分からないこと

MainActivity クラスが見つからないとエラーで言われています。

※MainActivity.ktはcom.example.todoapp直下にあります。

エラーメッセージ

error

1FATAL EXCEPTION: main 2Process: com.example.todoapp, PID: 16874 3java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.todoapp/com.example.todoapp.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.todoapp.MainActivity" on path: DexPathList[[dex file "/data/data/com.example.todoapp/code_cache/.overlay/base.apk/classes3.dex", dex file 4 52024-04-22 23:26:36.164 16874-16874 AndroidRuntime com.example.todoapp E Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.todoapp.Hilt_MainActivity" on path: DexPathList[[dex file "/data/data/com.example.todoapp/code_cache/.overlay/base.apk/classes3.dex", dex file ... 20 more 6Suppressed: [CIRCULAR REFERENCE: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/example/todoapp/Hilt_MainActivity;] 72024-04-22 23:26:36.187 16874-16874 Process com.example.todoapp

該当のソースコード

[MainActivity.kt]

kotlin

1package com.example.todoapp 2 3import 省略 4 5@AndroidEntryPoint 6class MainActivity : ComponentActivity() { 7 override fun onCreate(savedInstanceState: Bundle?) { 8 super.onCreate(savedInstanceState) 9 setContent { 10 TodoAppTheme { 11 // A surface container using the 'background' color from the theme 12 Surface( 13 modifier = Modifier.fillMaxSize(), 14 color = MaterialTheme.colorScheme.background 15 ) { 16 } 17 } 18 } 19 } 20}

[AndroidManifest.xml]

xml

1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 xmlns:tools="http://schemas.android.com/tools"> 4 5 <application 6 android:name=".TodoApplication" 7 android:allowBackup="true" 8 android:dataExtractionRules="@xml/data_extraction_rules" 9 android:fullBackupContent="@xml/backup_rules" 10 android:icon="@mipmap/ic_launcher" 11 android:label="@string/app_name" 12 android:roundIcon="@mipmap/ic_launcher_round" 13 android:supportsRtl="true" 14 android:theme="@style/Theme.TodoApp" 15 tools:targetApi="31"> 16 <activity 17 android:name=".MainActivity" 18 android:exported="true" 19 android:label="@string/app_name" 20 android:theme="@style/Theme.TodoApp"> 21 <intent-filter> 22 <action android:name="android.intent.action.MAIN" /> 23 24 <category android:name="android.intent.category.LAUNCHER" /> 25 </intent-filter> 26 </activity> 27 </application> 28 29</manifest>

[build.gradle:app]

kotlin

1plugins { 2 id("com.android.application") 3 id("org.jetbrains.kotlin.android") 4 alias(libs.plugins.ksp.gradle.plugin) 5 alias(libs.plugins.hilt.android.gradle.plugin) 6} 7 8android { 9 namespace = "com.example.todoapp" 10 compileSdk = 34 11 12 defaultConfig { 13 applicationId = "com.example.todoapp" 14 minSdk = 24 15 targetSdk = 34 16 versionCode = 1 17 versionName = "1.0" 18 19 testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" 20 vectorDrawables { 21 useSupportLibrary = true 22 } 23 } 24 25 buildTypes { 26 release { 27 isMinifyEnabled = false 28 proguardFiles( 29 getDefaultProguardFile("proguard-android-optimize.txt"), 30 "proguard-rules.pro" 31 ) 32 } 33 } 34 compileOptions { 35 sourceCompatibility = JavaVersion.VERSION_1_8 36 targetCompatibility = JavaVersion.VERSION_1_8 37 } 38 kotlinOptions { 39 jvmTarget = "1.8" 40 } 41 buildFeatures { 42 compose = true 43 } 44 composeOptions { 45 kotlinCompilerExtensionVersion = "1.5.1" 46 } 47 packaging { 48 resources { 49 excludes += "/META-INF/{AL2.0,LGPL2.1}" 50 } 51 } 52} 53 54dependencies { 55 implementation(libs.androidx.core.ktx) 56 implementation(libs.androidx.lifecycle.runtime.ktx) 57 implementation(libs.androidx.activity.compose) 58 implementation(platform(libs.androidx.compose.bom)) 59 implementation(libs.androidx.ui) 60 implementation(libs.androidx.ui.graphics) 61 implementation(libs.androidx.ui.tooling.preview) 62 implementation(libs.androidx.material3) 63 testImplementation(libs.junit) 64 androidTestImplementation(libs.androidx.junit) 65 androidTestImplementation(libs.androidx.espresso.core) 66 androidTestImplementation(platform(libs.androidx.compose.bom)) 67 androidTestImplementation(libs.androidx.ui.test.junit4) 68 debugImplementation(libs.androidx.ui.tooling) 69 debugImplementation(libs.androidx.ui.test.manifest) 70 // hilt 71 implementation(libs.lifecycle.viewmodel.ktx) 72 implementation(libs.hilt.android) 73 ksp(libs.hilt.compiler) 74 implementation(libs.hilt.navigation.compose) 75 // room 76 implementation(libs.room.runtime) 77 implementation(libs.room.ktx) 78 annotationProcessor(libs.room.compiler) 79 ksp(libs.room.compiler) 80}

[build.gradle]

kotlin

1plugins { 2 alias(libs.plugins.androidApplication) apply false 3 alias(libs.plugins.jetbrainsKotlinAndroid) apply false 4 alias(libs.plugins.ksp.gradle.plugin) apply false 5 alias(libs.plugins.hilt.android.gradle.plugin) apply false 6}

試したこと・調べたこと

  • teratailやGoogle等で検索した
  • ソースコードを自分なりに変更した
  • 知人に聞いた
  • その他
上記の詳細・結果

・MainActivity.kt ファイルは com.example.todoapp パッケージ内に存在しています

以下を実施しました
・Android Studioのキャッシュクリア「Invalidate Caches / Restart...」→再起動
・ビルドキャッシュをクリア「Build」→「Clean Project」
・プロジェクトの再構築「Build」→「Rebuild Project」

エラーは変わりませんでした。

補足

特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2024/04/22 15:37

ビルドスクリプトもご提示されたほうが良いと思います。
mimimimimi_

2024/04/22 15:51

コメントありがとうございます。 build.gradleのコードも追加させていただきました。 ご確認よろしくお願いいたします。
jimbe

2024/04/22 16:29 編集

公式系の情報 Android アプリでの Hilt の使用 https://developer.android.com/codelabs/android-hilt?hl=ja や、google で android hilt で検索して導入を説明している記事を見ると、ビルドに入っているものが色々違う感じですが、あっているのでしょうか。 >buildscript { > ... > ext.hilt_version = '2.28-alpha' > dependencies { > ... > classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version" > } >} >... >apply plugin: 'kotlin-kapt' >apply plugin: 'dagger.hilt.android.plugin' > >android { > ... >} google 検索 https://www.google.com/search?q=android+hilt stackoverflow にも似たような質問がありました。 Hilt: java.lang.ClassNotFoundException: Didn't find class "com.kotlin20test.Hilt_MyApp" https://stackoverflow.com/questions/67650422/hilt-java-lang-classnotfoundexception-didnt-find-class-com-kotlin20test-hilt
mimimimimi_

2024/04/23 00:16

ご確認いただきありがとうございます。 公式のcodeLabは更新日が2020年で、コードの書き方も古いのか現在使用している最新のAndroidStudioだとコンソールエラーとなっため、以下を参照していました。 https://developer.android.com/training/dependency-injection/hilt-android?hl=ja しかし、今度はビルドエラーとなったため、検索したところ こちらの記事にたどり着きました https://zenn.dev/slowhand/articles/3ab73d3cf95820 書き方も今のAndroidStudioの環境と合っていたのと、kaptよりもkspのほうが処理が速い(https://developer.android.com/build/migrate-to-ksp?hl=ja)と知ったので、こちらのzenn記事を参考にしました hiltまわりでまだなにか間違っているんでしょうかね。。 改めて見直してみます。むずかしい;;
guest

回答1

0

自己解決

GradleScriptの修正を行って解決しました。
今回追加修正したものです。

・[libs.versions.toml]
ksp = "1.9.0-1.0.13"
roomRuntime = "2.6.1"
roomCompiler = "2.6.1"
roomKtx = "2.6.1"

[plugins]
googleDevToolsKsp = { id = "com.google.devtools.ksp", version.ref = "ksp"}

・[build.gradle:app]
plugins {
alias(libs.plugins.googleDevToolsKsp)
}

dependencies {
implementation(libs.androidx.room.runtime)
ksp(libs.androidx.room.compiler)
implementation(libs.androidx.room.ktx)
}

・[build.gradle:PJ]
plugins {
alias(libs.plugins.googleDevToolsKsp) apply false
}

投稿2024/04/23 06:17

mimimimimi_

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問