Я пытаюсь переключиться с gcm на fcm. Я выполнил шаги, подробно описанные в руководстве по миграции с gcm на fcm, хотя FirebaseApp не инициализируется.
Я определил пару возможных проблем, однако коденамеон не помогает их решить.
По-видимому, к зависимостям buildscript необходимо добавить google-сервисы, например:
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'}
Пожалуйста, помогите.
Обновление: похоже, нужны две новые подсказки для сборки, которые могут разрешить:
- Вставить оператор применения плагина после раздела зависимостей
- Вставить оператор clsspath в раздел зависимостей buildscript