前提・実現したいこと
初めて質問させていただきます。
Android Studioを使ってアプリの設定画面を作成しています。設定画面からオープンソースライセンスを表示させるようにしたいのですが、表示ボタンを押すとアプリがクラッシュしてしまいます。ライセンスを表示させるライブラリはcom.google.android.gms.oss-licensesを使っています。クラッシュの原因が分からずに困っています。解決方法をご教示頂けますと幸いです。
発生している問題・エラーメッセージ
error
1E/AndroidRuntime: FATAL EXCEPTION: main 2 Process: com.example.myapplication_preferences, PID: 14086 3 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.myapplication_preferences/com.example.myapplication_preferences.OssLicensesMenuActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.myapplication_preferences.OssLicensesMenuActivity" on path: DexPathList[[zip file "/data/app/~~Ovn3IX7tr9CNyINlE-Q_HA==/com.example.myapplication_preferences-h0MU58WBBbIyBMWmjVAjvg==/base.apk"],nativeLibraryDirectories=[/data/app/~~Ovn3IX7tr9CNyINlE-Q_HA==/com.example.myapplication_preferences-h0MU58WBBbIyBMWmjVAjvg==/lib/x86, /system/lib, /system_ext/lib]] 4 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3365) 5 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 6 at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 7 at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 8 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 9 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 10 at android.os.Handler.dispatchMessage(Handler.java:106) 11 at android.os.Looper.loop(Looper.java:223) 12 at android.app.ActivityThread.main(ActivityThread.java:7656) 13 at java.lang.reflect.Method.invoke(Native Method) 14 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 15 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) 16 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.myapplication_preferences.OssLicensesMenuActivity" on path: DexPathList[[zip file "/data/app/~~Ovn3IX7tr9CNyINlE-Q_HA==/com.example.myapplication_preferences-h0MU58WBBbIyBMWmjVAjvg==/base.apk"],nativeLibraryDirectories=[/data/app/~~Ovn3IX7tr9CNyINlE-Q_HA==/com.example.myapplication_preferences-h0MU58WBBbIyBMWmjVAjvg==/lib/x86, /system/lib, /system_ext/lib]] 17 at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207) 18 at java.lang.ClassLoader.loadClass(ClassLoader.java:379) 19 at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 20 at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95) 21 at androidx.core.app.CoreComponentFactory.instantiateActivity(CoreComponentFactory.java:45) 22 at android.app.Instrumentation.newActivity(Instrumentation.java:1253) 23 at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3353) 24 at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601) 25 at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85) 26 at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 27 at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 28 at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) 29 at android.os.Handler.dispatchMessage(Handler.java:106) 30 at android.os.Looper.loop(Looper.java:223) 31 at android.app.ActivityThread.main(ActivityThread.java:7656) 32 at java.lang.reflect.Method.invoke(Native Method) 33 at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 34 at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
該当のソースコード
preferences
1<?xml version="1.0" encoding="utf-8"?> 2<PreferenceScreen xmlns:app="http://schemas.android.com/apk/res-auto" 3 xmlns:android="http://schemas.android.com/apk/res/android"> 4 5 <PreferenceCategory app:title="@string/ui"> 6 7 <ListPreference 8 app:defaultValue="@string/dark_mode_def_value" 9 app:entries="@array/dark_mode_entries" 10 app:entryValues="@array/dark_mode_values" 11 app:key="@string/dark_mode" 12 app:title="@string/dark_mode" 13 app:useSimpleSummaryProvider="true" /> 14 15 </PreferenceCategory> 16 17 <PreferenceCategory app:title="About"> 18 19 <Preference 20 app:key="License" 21 app:title="OSS License"> 22 <intent 23 android:targetPackage="com.example.myapplication_preferences" 24 android:targetClass="com.example.myapplication_preferences.OssLicensesMenuActivity"/> 25 26 </Preference> 27 28 </PreferenceCategory> 29 30</PreferenceScreen>
AndroidManifest
1<?xml version="1.0" encoding="utf-8"?> 2<manifest xmlns:android="http://schemas.android.com/apk/res/android" 3 package="com.example.myapplication_preferences"> 4 5 <application 6 android:allowBackup="true" 7 android:icon="@mipmap/ic_launcher" 8 android:label="@string/app_name" 9 android:roundIcon="@mipmap/ic_launcher_round" 10 android:supportsRtl="true" 11 android:theme="@style/Theme.MyApplication_Preferences"> 12 <activity 13 android:name=".SettingsActivity" 14 android:label="@string/title_activity_settings" 15 android:parentActivityName=".MainActivity" /> 16 <activity 17 android:name=".OssLicensesMenuActivity" 18 android:label="@string/title_activity_license" 19 android:parentActivityName=".MainActivity" /> 20 <activity android:name=".MainActivity"> 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> 30
試したこと
AndroidManifest.xmlにOssLicensesMenuActivityを追加していないことが原因かと思い、追加してみましたが解決しませんでした。
補足情報(FW/ツールのバージョンなど)
Android Studio 4.1.1
Kotlin 1.4.20
com.google.android.gms:oss-licenses-plugin 0.10.2
com.google.android.gms:play-services-oss-licenses 17.0.0
androidx.preference:preference-ktx 1.1.1
なお、AndroidManifest.xmlのandroid:name=".OssLicensesMenuActivity"の部分には、赤字と共にClass referenced in the manifest, com.example.myapplication_preferences.OssLicensesMenuActivity, was not found in the project or the librariesというエラーが表示されています。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。