🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

Q&A

解決済

1回答

2287閲覧

設定画面からオープンソースライセンスを表示させたい

tcrt56

総合スコア1

Android

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

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

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

0グッド

0クリップ

投稿2020/11/30 04:12

前提・実現したいこと

初めて質問させていただきます。

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というエラーが表示されています。

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

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

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

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

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

guest

回答1

0

自己解決

preferences.xmlのandroid:targetClassを
"com.example.myapplication_preferences.OssLicensesMenuActivity"

"com.google.android.gms.oss.licenses.OssLicensesMenuActivity"
に変更することで正常にライセンス画面が表示されました。お騒がせしました。

投稿2020/12/01 03:44

tcrt56

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問