OneSignal Android Studio 获取 FCM 令牌时出现未知错误

Leo*_*enn 2 android onesignal

我遇到问题。\n我无法使用 OneSignal。我不知道为什么。我用谷歌搜索了该错误,但没有任何帮助。

\n

目前我使用 Android Studio 版本:4.2\n最新的 OneSignal 版本:4.3.4\n还有最新的 Firebase 版本。我创建了一个新的 Firebase 项目和 OneSignal 项目。

\n

这是错误:

\n
2021-05-25 13:06:37.370 3225-4181/de.kggaming.application E/OneSignal: Unknown error getting FCM Token\n    java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/iid/FirebaseInstanceId;\n        at com.onesignal.PushRegistratorFCM.getToken(PushRegistratorFCM.java:60)\n        at com.onesignal.PushRegistratorAbstractGoogle.attemptRegistration(PushRegistratorAbstractGoogle.java:97)\n        at com.onesignal.PushRegistratorAbstractGoogle.access$100(PushRegistratorAbstractGoogle.java:37)\n        at com.onesignal.PushRegistratorAbstractGoogle$1.run(PushRegistratorAbstractGoogle.java:84)\n        at java.lang.Thread.run(Thread.java:923)\n     Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.iid.FirebaseInstanceId" on path: DexPathList[[dex file "/data/data/de.kggaming.application/code_cache/.overlay/base.apk/classes3.dex", zip file "/data/app/~~37wP-zifceloViDoIaZiLQ==/de.kggaming.application-MT0rnPML9HHvlPgijekxXw==/base.apk"],nativeLibraryDirectories=[/data/app/~~37wP-zifceloViDoIaZiLQ==/de.kggaming.application-MT0rnPML9HHvlPgijekxXw==/lib/arm64, /system/lib64]]\n        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:207)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)\n        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)\n        at com.onesignal.PushRegistratorFCM.getToken(PushRegistratorFCM.java:60)\xc2\xa0\n        at com.onesignal.PushRegistratorAbstractGoogle.attemptRegistration(PushRegistratorAbstractGoogle.java:97)\xc2\xa0\n        at com.onesignal.PushRegistratorAbstractGoogle.access$100(PushRegistratorAbstractGoogle.java:37)\xc2\xa0\n        at com.onesignal.PushRegistratorAbstractGoogle$1.run(PushRegistratorAbstractGoogle.java:84)\xc2\xa0\n        at java.lang.Thread.run(Thread.java:923)\xc2\xa0\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的 build.gradle (项目):

\n
// Top-level build file where you can add configuration options common to all sub-projects/modules.\nbuildscript {\n    repositories {\n        google()\n        mavenCentral()\n        gradlePluginPortal()\n    }\n    dependencies {\n        classpath "com.android.tools.build:gradle:4.2.0"\n        classpath 'com.google.gms:google-services:4.3.8'\n        classpath 'gradle.plugin.com.onesignal:onesignal-gradle-plugin:[0.12.10, 0.99.99]'\n\n\n        // NOTE: Do not place your application dependencies here; they belong\n        // in the individual module build.gradle files\n    }\n}\n\nallprojects {\n    repositories {\n        google()\n        mavenCentral()\n    }\n}\n\ntask clean(type: Delete) {\n    delete rootProject.buildDir\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这是我的应用程序 build.gradle:

\n
plugins {\n    id 'com.onesignal.androidsdk.onesignal-gradle-plugin'\n    id 'com.android.application'\n    id 'com.google.gms.google-services'\n\n}\n\nandroid {\n    compileSdkVersion 30\n\n    defaultConfig {\n        applicationId "de.kggaming.application"\n        minSdkVersion 26\n        targetSdkVersion 30\n        versionCode 1\n        versionName "1.0"\n\n        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"\n    }\n\n    buildTypes {\n        release {\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'\n        }\n    }\n    compileOptions {\n        sourceCompatibility JavaVersion.VERSION_1_8\n        targetCompatibility JavaVersion.VERSION_1_8\n    }\n}\n\ndependencies {\n\n    implementation 'androidx.appcompat:appcompat:1.3.0'\n    implementation 'com.google.android.material:material:1.3.0'\n    implementation 'androidx.constraintlayout:constraintlayout:2.0.4'\n    implementation 'com.google.firebase:firebase-messaging:22.0.0'\n    testImplementation 'junit:junit:4.+'\n    androidTestImplementation 'androidx.test.ext:junit:1.1.2'\n    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'\n    implementation platform('com.google.firebase:firebase-bom:28.0.1')\n    implementation 'com.google.firebase:firebase-analytics'\n    implementation 'com.onesignal:OneSignal:[4.0.0, 4.99.99]'\n}\n
Run Code Online (Sandbox Code Playgroud)\n

这里是应用程序类:

\n
package de.kggaming.application;\n\nimport android.app.Application;\n\nimport com.onesignal.OneSignal;\n\npublic class ApplicationClass extends Application {\n    private static final String ONESIGNAL_APP_ID = "XXXXXXXXXXXXXXXXXXXXXXXX";\n    @Override\n    public void onCreate() {\n        super.onCreate();\n        OneSignal.setLogLevel(OneSignal.LOG_LEVEL.DEBUG, OneSignal.LOG_LEVEL.DEBUG);\n\n        // OneSignal Initialization\n        OneSignal.initWithContext(this);\n        OneSignal.setAppId(ONESIGNAL_APP_ID);\n    }\n}\n\n
Run Code Online (Sandbox Code Playgroud)\n

该应用程序没有任何功能。只是一个空的活动和这个信号的实现。

\n

你能帮我让这件事发挥作用吗?

\n

谢谢你!

\n

此致,

\n

吉斯莫

\n

Sar*_*aja 8

解析失败:Lcom/google/firebase/iid/FirebaseInstanceId

在尝试初始化hypertrack_plugin依赖于 firebase SDK 的 flutter 项目时,我遇到了类似的问题。

在此输入图像描述

经过两天的搜索修复后添加此实现android/app/build.gradle

希望这个解决方案也能解决您的问题。

dependencies {
  implementation "com.google.firebase:firebase-iid"
}
Run Code Online (Sandbox Code Playgroud)

从此链接找到了解决方案