web-dev-qa-db-ja.com

AndroidでFirebaseアプリ内メッセージングを使用できませんか?

新しいFirebaseアプリ内メッセージング機能をAndroid app.butに実装しようとしていますが、ライブラリをgradleに追加した瞬間にアプリがクラッシュします。

これは私のgradleです:

implementation 'com.google.firebase:firebase-inappmessaging-display:17.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'

クラッシュログにピカソに関連するエラーが表示されるため、ここでピカソを指定しました

ログファイルは次のとおりです。

08-19 18:10:08.482 26606-26606/com.kirtu.simpletexts.texts.debug E/CrashlyticsCore: Failed to execute task.
    Java.util.concurrent.TimeoutException
        at Java.util.concurrent.FutureTask.get(FutureTask.Java:177)
        at com.crashlytics.Android.core.CrashlyticsBackgroundWorker.submitAndWait(CrashlyticsBackgroundWorker.Java:41)
        at com.crashlytics.Android.core.CrashlyticsController.handleUncaughtException(CrashlyticsController.Java:320)
        at com.crashlytics.Android.core.CrashlyticsController$6.onUncaughtException(CrashlyticsController.Java:300)
        at com.crashlytics.Android.core.CrashlyticsUncaughtExceptionHandler.uncaughtException(CrashlyticsUncaughtExceptionHandler.Java:42)
        at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:1068)
        at Java.lang.ThreadGroup.uncaughtException(ThreadGroup.Java:1063)
08-19 18:10:08.484 26606-26606/com.kirtu.simpletexts.texts.debug E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.kirtu.simpletexts.texts.debug, PID: 26606
    Java.lang.NoClassDefFoundError: Failed resolution of: Lcom/squareup/picasso/OkHttpDownloader;
        at com.google.firebase.inappmessaging.display.internal.b.b.zzr.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:2038)
        at dagger.internal.DoubleCheck.get(DoubleCheck.Java:47)
        at com.google.firebase.inappmessaging.display.internal.zzf.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1021)
        at dagger.internal.DoubleCheck.get(DoubleCheck.Java:47)
        at com.google.firebase.inappmessaging.display.zzb.get(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1062)
        at dagger.internal.DoubleCheck.get(DoubleCheck.Java:47)
        at com.google.firebase.inappmessaging.display.internal.b.a.zzb.zza(com.google.firebase:firebase-inappmessaging-display@@17.0.0:104)
        at com.google.firebase.inappmessaging.display.FirebaseInAppMessagingDisplayRegistrar.zza(com.google.firebase:firebase-inappmessaging-display@@17.0.0:1058)
        at com.google.firebase.inappmessaging.display.zza.create(com.google.firebase:firebase-inappmessaging-display@@17.0.0)
        at com.google.firebase.components.zzh.zza(com.google.firebase:firebase-common@@16.0.1:29)
        at com.google.firebase.components.zzi.get(com.google.firebase:firebase-common@@16.0.1)
        at com.google.firebase.components.zzh.get(com.google.firebase:firebase-common@@16.0.1:40)
        at com.google.firebase.components.ComponentContainer$$CC.get(com.google.firebase:firebase-common@@16.0.1:15)
        at com.google.firebase.components.zzd.get(com.google.firebase:firebase-common@@16.0.1)
        at com.google.firebase.components.zzd.zza(com.google.firebase:firebase-common@@16.0.1:68)
        at com.google.firebase.FirebaseApp.zze(com.google.firebase:firebase-common@@16.0.1:716)
        at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@16.0.1:329)
        at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@16.0.1:295)
        at com.google.firebase.FirebaseApp.initializeApp(com.google.firebase:firebase-common@@16.0.1:282)
        at com.google.firebase.provider.FirebaseInitProvider.onCreate(com.google.firebase:firebase-common@@16.0.1:37)
        at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1751)
        at Android.content.ContentProvider.attachInfo(ContentProvider.Java:1726)
        at com.google.firebase.provider.FirebaseInitProvider.attachInfo(com.google.firebase:firebase-common@@16.0.1:31)
        at Android.app.ActivityThread.installProvider(ActivityThread.Java:5977)
        at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:5547)
        at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:5486)
        at de.robv.Android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method)
        at de.robv.Android.xposed.XposedBridge.handleHookedMethod(XposedBridge.Java:360)
        at Android.app.ActivityThread.handleBindApplication(<Xposed>)
        at Android.app.ActivityThread.-wrap2(ActivityThread.Java)
        at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1575)
        at Android.os.Handler.dispatchMessage(Handler.Java:102)
        at Android.os.Looper.loop(Looper.Java:154)
        at Android.app.ActivityThread.main(ActivityThread.Java:6243)
        at Java.lang.reflect.Method.invoke(Native Method)
        at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:891)
        at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:781)
        at de.robv.Android.xposed.XposedBridge.main(XposedBridge.Java:107)
    Caused by: Java.lang.ClassNotFoundException: Didn't find class "com.squareup.picasso.OkHttpDownloader" on path: DexPathList[[Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/base.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_dependencies_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_0_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_1_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_2_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_3_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_4_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_5_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_6_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_7_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_8_apk.apk", Zip file "/data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.kirtu.simpletexts.texts.debug-2/lib/arm64, /data/app/com.kirtu.simpletexts.texts.debug-2/base.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.kirtu.simpletexts.texts.debug-2/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
        at Java.lang.ClassLoader.loadClass(ClassLoader.Java:380)
        at Java.lang.ClassLoader.loadClass(ClassLoader.Java:312)
            ... 38 more
08-19 18:10:08.723 834-12882/? E/linker: readlink("/proc/self/fd/276") failed: Permission denied [fd=276]

ピカソの12行目に関連する何かが書かれている行を確認してください。

何かあげる必要がある場合は教えてください。

11

私はこれまでに解決策を発見しました。遅く答えて申し訳ありません。

In-AppMessagingはPicassoバージョン2.5.2でプログラムされているため、最新バージョンでコンパイルすると、次のようになります。

Java.lang.NoClassDefFoundError error.

これを修正するには、GradleのPicassoバージョンをダウングレードするか、私が行ったように削除する必要があります。

//implementation 'com.squareup.picasso:picasso:2.71828'

アプリ内メッセージングライブラリにはすでにPicassoが統合されているため、アプリのbuild.gradleに登録する必要はありません。

あなたがしなければならない他のことはそれがそうである新しい統合を持っているのでです:

Picasso.get()

バージョン2.5.2を実装するには、次のように変更する必要があります。

Picasso.with(context)

私のコンパイルで修正されたのと同じように、これでバグが修正されることを願っています。

編集:アプリ内メッセージング統合トピックを補完するために、ライブラリが使用するライブラリは次のとおりです。

 +--- com.google.firebase:firebase-inappmessaging:17.0.0
|    |    +--- com.google.Android.gms:play-services-clearcut:15.0.1 (*)
|    |    +--- com.google.auto.value:auto-value-annotations:1.6
|    |    +--- com.google.dagger:dagger:2.13 (*)
|    |    +--- com.google.firebase:firebase-common:16.0.1 (*)
|    |    +--- com.google.firebase:firebase-iid:16.0.0 -> 17.0.0 (*)
|    |    +--- com.google.firebase:firebase-measurement-connector:17.0.0 (*)
|    |    +--- com.google.firebase:protolite-well-known-types:16.0.0
|    |    |    \--- com.google.protobuf:protobuf-lite:3.0.1
|    |    +--- io.grpc:grpc-okhttp:1.12.0
|    |    |    +--- io.grpc:grpc-core:[1.12.0] -> 1.12.0
|    |    |    |    +--- io.grpc:grpc-context:1.12.0
|    |    |    |    +--- com.google.code.gson:gson:2.7
|    |    |    |    +--- com.google.guava:guava:20.0
|    |    |    |    +--- com.google.errorprone:error_prone_annotations:2.1.2
|    |    |    |    +--- com.google.code.findbugs:jsr305:3.0.0 -> 3.0.1
|    |    |    |    +--- io.opencensus:opencensus-api:0.11.0
|    |    |    |    \--- io.opencensus:opencensus-contrib-grpc-metrics:0.11.0
|    |    |    |         \--- io.opencensus:opencensus-api:0.11.0
|    |    |    +--- com.squareup.okhttp:okhttp:2.5.0 -> 2.7.5
|    |    |    |    \--- com.squareup.okio:okio:1.6.0 -> 1.14.0
|    |    |    \--- com.squareup.okio:okio:1.13.0 -> 1.14.0
|    |    +--- io.grpc:grpc-protobuf-lite:1.12.0
|    |    |    +--- io.grpc:grpc-core:1.12.0 (*)
|    |    |    +--- com.google.protobuf:protobuf-lite:3.0.1
|    |    |    \--- com.google.guava:guava:20.0
|    |    +--- io.grpc:grpc-stub:1.12.0
|    |    |    \--- io.grpc:grpc-core:1.12.0 (*)
|    |    +--- io.reactivex.rxjava2:rxandroid:2.0.2
|    |    |    \--- io.reactivex.rxjava2:rxjava:2.1.9 -> 2.1.14
|    |    |         \--- org.reactivestreams:reactive-streams:1.0.2
|    |    \--- io.reactivex.rxjava2:rxjava:2.1.14 (*)
|    +--- com.squareup.okhttp:okhttp:2.7.5 (*)
|    \--- com.squareup.picasso:picasso:2.5.2 -> 2.71828 (*)