не удается найти импорт символа com.google.firebase.iid.FirebaseInstanceIdService ошибка в ionic3 - PullRequest
3 голосов
/ 21 мая 2019

Я понятия не имею, почему я получаю эту ошибку всякий раз, когда пытаюсь создать сборку приложения. Я пробовал много решений, но мне не удалось решить эту проблему. Я не знаю, являются ли какие-либо плагины причиной проблем или есть какие-либопроблема с моим кодом или связью firebase или firebase. Я удалил узлы модулей и запустил npm install, удалил и заново добавил платформу Android, но все равно получаю эту ошибку.

import com.google.firebase.iid.FirebaseInstanceIdService;
                              ^
  symbol:   class FirebaseInstanceIdService
  location: package com.google.firebase.iid
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePluginInstanceIDService.java:9: error: cannot find symbol
public class FirebasePluginInstanceIDService extends FirebaseInstanceIdService {
                                                     ^
  symbol: class FirebaseInstanceIdService
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:508: error: method getByteArray in class FirebaseRemoteConfig cannot be applied to given types;
                            : FirebaseRemoteConfig.getInstance().getByteArray(key, namespace);
                                                                ^
  required: String
  found: String,String
  reason: actual and formal argument lists differ in length
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:525: error: method getValue in class
FirebaseRemoteConfig cannot be applied to given types;
                            : FirebaseRemoteConfig.getInstance().getValue(key, namespace);
                                                                ^
  required: String
  found: String,String
  reason: actual and formal argument lists differ in length
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:579: error: no suitable method found
for setDefaults(Map<String,Object>,String)
                        FirebaseRemoteConfig.getInstance().setDefaults(defaultsToMap(defaults), namespace);
                                                          ^
    method FirebaseRemoteConfig.setDefaults(Map<String,Object>) is not applicable
      (actual and formal argument lists differ in length)
    method FirebaseRemoteConfig.setDefaults(int) is not applicable
      (actual and formal argument lists differ in length)
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePluginInstanceIDService.java:18: error: method does not override or implement a method from a supertype
    @Override
    ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\io\card\cordova\sdk\CardIOCordovaPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
6 errors
:app:compileDebugJavaWithJavac FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
27 actionable tasks: 1 executed, 26 up-to-date
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 54s
cmd: Command failed with exit code 1 Error output:
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePluginInstanceIDService.java:6: error: cannot find symbol
import com.google.firebase.iid.FirebaseInstanceIdService;
                              ^
  symbol:   class FirebaseInstanceIdService
  location: package com.google.firebase.iid
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePluginInstanceIDService.java:9: error: cannot find symbol
public class FirebasePluginInstanceIDService extends FirebaseInstanceIdService {
                                                     ^
  symbol: class FirebaseInstanceIdService
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:508: error: method getByteArray in class FirebaseRemoteConfig cannot be applied to given types;
                            : FirebaseRemoteConfig.getInstance().getByteArray(key, namespace);
                                                                ^
  required: String
  found: String,String
  reason: actual and formal argument lists differ in length
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:525: error: method getValue in class
FirebaseRemoteConfig cannot be applied to given types;
                            : FirebaseRemoteConfig.getInstance().getValue(key, namespace);
                                                                ^
  required: String
  found: String,String
  reason: actual and formal argument lists differ in length
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePlugin.java:579: error: no suitable method found
for setDefaults(Map<String,Object>,String)
                        FirebaseRemoteConfig.getInstance().setDefaults(defaultsToMap(defaults), namespace);
                                                          ^
    method FirebaseRemoteConfig.setDefaults(Map<String,Object>) is not applicable
      (actual and formal argument lists differ in length)
    method FirebaseRemoteConfig.setDefaults(int) is not applicable
      (actual and formal argument lists differ in length)
C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\org\apache\cordova\firebase\FirebasePluginInstanceIDService.java:18: error: method does not override or implement a method from a supertype
    @Override
    ^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: C:\Users\user\Downloads\mosque\platforms\android\app\src\main\java\io\card\cordova\sdk\CardIOCordovaPlugin.java uses unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
6 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

BUILD FAILED in 54s
[ERROR] An error occurred while running subprocess cordova.

        cordova build android exited with exit code 1.

Ответы [ 4 ]

5 голосов
/ 30 мая 2019

Это связано с обновлениями Firebase от 5 апреля. Здесь https://firebase.google.com/support/release-notes/android#update_-_april_02_2019 96, я нашел последние рабочие версии и настроил project.properties соответственно так:

cordova.system.library.4=com.google.firebase:firebase-core:16.0.8 

cordova.system.library.5=com.google.firebase:firebase-messaging:17.5.0 

cordova.system.library.6=com.google.firebase:firebase-config:16.4.1 

cordova.system.library.7=com.google.firebase:firebase-perf:16.2.4

Здесь всезависимости заблокированы для конкретной версии (Обновление - 02 апреля 2019 г.) вместо + , что даст вам самую последнюю версию, что нарушит процесс сборки.

Теперь я могу выполнить сборку успешно!Надеюсь, это поможет!

project.properties можно найти на платформы / Android / Project.properties

2 голосов
/ 20 июня 2019

Да, это амортизируется.Исправить это довольно просто, просто переместите код ...

С onTokenRefresh() в вашем FirebaseInstanceIdService подклассе

На onNewToken() в вашем FirebaseMessagingService подклассе

Информация об амортизации: https://firebase.google.com/support/release-notes/android#update_-_april_02_2019

Я бы порекомендовал сделать это небольшое изменение кода с использованием старых версий Firebase.Вероятно, неплохо бы также перейти на AndroidX [https://developer.android.com/jetpack/androidx/migrate], пока вы на нем.

1 голос
/ 10 июля 2019

После нескольких тестов моим решением было заменить cordova-plugin-firebase на cordova-plugin-firebasex. https://github.com/dpa99c/cordova-plugin-firebase#migrating-from-cordova-plugin-firebase

rm -Rf platforms/android
cordova plugin rm cordova-plugin-firebase
rm -Rf plugins/ node_modules/
npm install
cordova plugin add cordova-plugin-firebasex
cordova platform add android

Надеюсь, это поможет.

https://github.com/dpa99c/cordova-plugin-firebase#androidx

Этот плагин был перенесен для использования AndroidX (Jetpack), который является преемником библиотеки поддержки Android. Это реализуется путем добавления зависимости от cordova-plugin-androidx, которая включает AndroidX в платформе Android проекта Cordova.

Это связано с тем, что основной выпуск библиотек служб Firebase и Play Services 17 июня 2019 года был перенесен на AndroidX.

Поэтому, если ваш проект включает какие-либо плагины, которые зависят от устаревшей библиотеки поддержки Android, вы должны добавить в свой проект cordova-plugin-androidx-adapter. Этот плагин будет динамически переносить любой код плагина из библиотеки поддержки Android в эквиваленты AndroidX.

1 голос
/ 21 мая 2019

Хорошо.Это ошибка Gradle.Это связано с обновлениями Firebase в апреле, FirebaseInstanceIdService устарело, и многие сталкиваются с проблемой.

Проверьте справочную документацию для FirebaseInstanceIdService

Этот класс устарел.

В пользу переопределения onNewToken в FirebaseMessagingService.Как только это будет реализовано, эта служба может быть безопасно удалена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...