Q&A
解決策
https://stackoverflow.com/questions/61046199/java-lang-runtimeexception-unable-to-instantiate-activity-in-flutter
こちらのサイトを参考にビルドまでは出来るようになりました。
Android12の端末で起動できるかはまだ不明なので、確認が取れ次第解決済みにします。
現状
iOSとAndroidアプリをリリースしたのですが,
Android12の端末がアプリがインストール出来るが、 起動できず、クラッシュし、
アプリが継続して停止していますと表示されます。
環境
[✓] Flutter (Channel stable, 2.10.4, on macOS 12.2.1 21D62 darwin-x64, locale ja-JP) [✓] Android toolchain - develop for Android devices (Android SDK version 32.1.0-rc1) [✓] Xcode - develop for iOS and macOS (Xcode 13.3.1) [✓] Chrome - develop for the web [✓] Android Studio (version 2021.1) [✓] VS Code (version 1.66.2) [✓] Connected device (2 available) [✓] HTTP Host Availability
デバッグ端末 Pixel4 - API level 32 - Android12
問題
元々Emulatorでは開けたのですが、compileSdkVersionを31に変更し、
SDK ManagerでAndroid SDK Buildをアップデート、Android12をインストールしました。その後、デバッグしてみるとコンソールに以下のエラーが出ました。
Dart
1E/AndroidRuntime(19282): FATAL EXCEPTION: main 2E/AndroidRuntime(19282): Process: com.app.attendanc_management_app, PID: 19282 3E/AndroidRuntime(19282): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.app.attendanc_management_app/com.app.attendanc_management_app.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.app.attendanc_management_app.MainActivity" on path: DexPathList[[zip file "/data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/base.apk"],nativeLibraryDirectories=[/data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/lib/x86_64, /data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]] 4E/AndroidRuntime(19282): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3591) 5E/AndroidRuntime(19282): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3842) 6E/AndroidRuntime(19282): at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:103) 7E/AndroidRuntime(19282): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 8E/AndroidRuntime(19282): at android.app.ActivityThread.main(ActivityThread.java:7842) 9E/AndroidRuntime(19282): at java.lang.reflect.Method.invoke(Native Method) 10E/AndroidRuntime(19282): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548) 11E/AndroidRuntime(19282): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003) 12E/AndroidRuntime(19282): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.app.attendanc_management_app.MainActivity" on path: DexPathList[[zip file "/data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/base.apk"],nativeLibraryDirectories=[/data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/lib/x86_64, /data/app/~~IzjC1wYkYt43ic3kTwEE0Q==/com.app.attendanc_management_app-dWEZ4IHdQ8bWoaBXQz5xEw==/base.apk!/lib/x86_64, /system/lib64, /system_ext/lib64]] 13E/AndroidRuntime(19282): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:218) 14E/AndroidRuntime(19282): at java.lang.ClassLoader.loadClass(ClassLoader.java:379) 15E/AndroidRuntime(19282): at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 16E/AndroidRuntime(19282): at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) 17E/AndroidRuntime(19282): at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45) 18E/AndroidRuntime(19282): at android.app.Instrumentation.newActivity(Instrumentation.java:1285) 19E/AndroidRuntime(19282): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3578) 20E/AndroidRuntime(19282): ... 12 more
見解
自分も初めてのエラーだったので調べてみたら
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo
このエラーはたくさん記事が出てきて確認してみたのですが、記述を追加する場合などは自分はどれも記述してあり、今まではデバッグできてEmulatorも動いていたので何が原因なのか掴めていません。flutter cleanとflutter pub getをしてみましたが変わらずでした。
設定周り
android/build.gradle
Dart
1buildscript { 2 ext.kotlin_version = '1.6.21' 3 repositories { 4 google() 5 mavenCentral() 6 } 7 8 dependencies { 9 classpath 'com.android.tools.build:gradle:4.2.0' 10 classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 classpath 'com.google.gms:google-services:4.3.10' 12 } 13} 14 15allprojects { 16 repositories { 17 google() 18 mavenCentral() 19 } 20}
android/app/build.gradle
Dart
1android { 2 compileSdkVersion 31 3// デバッグシンボル用 4 ndkVersion "24.0.8215888" 5 6 compileOptions { 7 sourceCompatibility JavaVersion.VERSION_1_8 8 targetCompatibility JavaVersion.VERSION_1_8 9 } 10 11 kotlinOptions { 12 jvmTarget = '1.8' 13 } 14 15 sourceSets { 16 main.java.srcDirs += 'src/main/kotlin' 17 } 18 19 defaultConfig { 20 // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 21 applicationId "com.app.attendanc_management_app" 22 minSdkVersion 25 23 targetSdkVersion 31 24 versionCode flutterVersionCode.toInteger() 25 versionName flutterVersionName 26 multiDexEnabled true 27 } 28 29 signingConfigs { 30 release { 31 keyAlias keystoreProperties['keyAlias'] 32 keyPassword keystoreProperties['keyPassword'] 33 storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null 34 storePassword keystoreProperties['storePassword'] 35 } 36 } 37 38 buildTypes { 39 release { 40 // TODO: Add your own signing config for the release build. 41 // Signing with the debug keys for now, so `flutter run --release` works. 42 signingConfig signingConfigs.release 43 ndk { 44 debugSymbolLevel 'SYMBOL_TABLE' 45 } 46 } 47 } 48} 49 50flutter { 51 source '../..' 52} 53 54dependencies { 55 implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 56} 57 58apply plugin: 'com.google.gms.google-services'
android/app/src/main/AndroidManifest.xml
Dart
1<manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package="com.app.attendanc_management_app"> 3 <!-- <uses-permission android:name="android.permission.SEND_SMS"/> --> 4 <application 5 android:label="シュッ席" 6 android:name="${applicationName}" 7 android:icon="@mipmap/ic_launcher"> 8 <activity 9 android:name=".MainActivity" 10 android:exported="true" 11 android:launchMode="singleTop" 12 android:theme="@style/LaunchTheme" 13 android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode" 14 android:hardwareAccelerated="true" 15 android:windowSoftInputMode="adjustResize"> 16 <!-- Specifies an Android theme to apply to this Activity as soon as 17 the Android process has started. This theme is visible to the user 18 while the Flutter UI initializes. After that, this theme continues 19 to determine the Window background behind the Flutter UI. --> 20 <meta-data 21 android:name="io.flutter.embedding.android.NormalTheme" 22 android:resource="@style/NormalTheme" 23 /> 24 <intent-filter> 25 <action android:name="android.intent.action.MAIN"/> 26 <category android:name="android.intent.category.LAUNCHER"/> 27 </intent-filter> 28 </activity> 29 <!-- Don't delete the meta-data below. 30 This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> 31 <meta-data 32 android:name="flutterEmbedding" 33 android:value="2" /> 34 </application> 35</manifest>
回答1件
あなたの回答
tips
プレビュー
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。