CodenameOne - FirebaseApp没有初始化

问题描述 投票:1回答:1

我正试图从gcm切换到fcm。虽然FirebaseApp没有初始化,但我已按照gcm到fcm迁移指南中详述的步骤进行操作。

我已经确定了几个可能的问题,但是代号并没有帮助解决它们。

显然,需要将google-services添加到buildscript依赖项中,如下所示:

buildscript {
    repositories {
        ...
    }
    dependencies {

        classpath 'com.android.tools.build:gradle:2.3.3'
        classpath 'com.google.gms:google-services:3.0.0'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

但是,我找不到任何代号建立提示来帮助我这样做。

此外,需要添加google-services插件,如下所示:

apply plugin: 'com.google.gms.google-services'

我通过使用android.gradlePlugin构建提示完成了这个:

codename1.arg.android.gradlePlugin=apply plugin\:'com.google.gms.google-services'

但是构建失败抱怨它无法找到插件,因为它可能需要如上所述定义。

此外,我已经看到,在大多数情况下,此行应出现在“依赖项”部分之后,而不是之前,如当前的构建提示那样。

目前还不确定这是否是一个问题。

我还尝试通过一些本机代码手动启动FirebaseApp,如下所示:

Context context = AndroidNativeUtil.getContext();
FirebaseApp.initializeApp(context);

但它没有帮助。不会引发任何错误,但是在尝试通过时检索令牌时

String token = FirebaseInstanceId.getInstance().getToken();

我收到这样的错误:

IllegalStateException: Default FirebaseApp is not initialized in this process

我的build.gradle文件由codenameone构建服务器生成,如下所示:

apply plugin: 'com.android.application'

buildscript {
    repositories {
     jcenter()
     mavenLocal()
      mavenCentral()
      google()
    maven { url "https://maven.google.com" }
     mavenLocal()
      mavenCentral()
      google()
    }
    dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

android {
    compileSdkVersion 27
    buildToolsVersion '27'

    dexOptions {
        preDexLibraries = false
        incremental false
        jumboMode = true
        javaMaxHeapSize "3g"
    }
    defaultConfig {
        applicationId "<appid>"
        minSdkVersion 15
        targetSdkVersion 27
        versionCode 85
        versionName "0.85"
        multiDexEnabled true
    }
    sourceSets {
        main {
            aidl.srcDirs = ['src/main/java']
        }
    }

    lintOptions {
        lintOptions {
        checkReleaseBuilds false
        abortOnError false
        }
    }
    signingConfigs {
        release {
            storeFile file("keyStore")
            storePassword "android"
            keyAlias "androiddebugkey"
            keyPassword "android"
        }
    }
buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard.cfg'
            signingConfig signingConfigs.release
        }
        debug {
            signingConfig signingConfigs.release
        }
    }
}

repositories {
    jcenter()
    maven { url "https://maven.google.com" }
     mavenLocal()
      mavenCentral()
      google()
    flatDir{
              dirs 'libs'
       }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:support-v4:27.+'
     implementation 'com.android.support:appcompat-v7:27.+'

 compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile 'com.google.android.gms:play-services:10.0.1'
compile 'com.google.gms:google-services:4.1.0'
compile 'com.google.firebase:firebase-core:16.0.3'
compile 'com.google.firebase:firebase-messaging:17.3.0'}

请帮忙。

更新:所以似乎需要两个新的构建提示,可以允许:

  1. 在依赖项部分之后注入apply plugin语句
  2. 在buildscript依赖项部分中注入clsspath语句
android firebase firebase-cloud-messaging codenameone
1个回答
0
投票

我找到了一种解决方法来初始化没有google-services插件的FirebaseApp。

我不得不手动初始化它,如下所述:Can I initialize Firebase without using google-services.json?

© www.soinside.com 2019 - 2024. All rights reserved.