Сунь Цзы, древний китайский стратег, генерал и философ, сказал:
Говорят, что если вы знаете своих врагов и знаете себя, вы можете выиграть сто сражений без единого потеря. Если вы знаете только себя, но не своего оппонента, вы можете победить или проиграть. Если вы не знаете ни себя, ни своего врага, вы всегда будете подвергать себя опасности.
blockquote>В этом случае ваш враг - это HTML, и вы либо сами, либо регулярное выражение. Возможно, вы даже Perl с нерегулярным регулярным выражением. Знайте HTML. Знайте сами.
Я написал хайку, описывающий характер HTML.
HTML has complexity exceeding regular language.
Я также написал хайку, описывающий характер регулярного выражения в Perl.
The regex you seek is defined within the phrase <([a-zA-Z]+)(?:[^>]*[^/]*)?>
У меня была эта же проблема некоторое время назад.
Вы пытаетесь получить экземпляр Firebase без его инициализации. Пожалуйста, добавьте эту строку кода, прежде чем пытаться получить экземпляр Firebase:
FirebaseApp.initializeApp(this);
Прежде всего вам нужно добавить com.google.gms: google-services: xxx на уровне root build.gradle
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.3.1'
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
}
}
После этого вам необходимо применить плагин: «com.google.gms.google-services» в app / build.gradle
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:25.3.1'
compile 'com.android.support:design:25.3.1'
compile 'com.android.support:cardview-v7:25.3.1'
compile 'com.google.android.gms:play-services-gcm:9.8.0'
compile 'com.google.android.gms:play-services-maps:9.8.0'
compile 'com.google.android.gms:play-services-location:9.8.0'
compile 'com.google.firebase:firebase-messaging:9.8.0'
testCompile 'junit:junit:4.12'
}
apply plugin: 'com.google.gms.google-services'
, и если вы все еще получаете проблемы, вам нужно добавить
FirebaseApp.initializeApp(this);
перед тем, как вы вызываете
FirebaseInstanceId.getInstance().getToken();
Мы должны будем инициализировать Firebase в функции onCreate класса Application.
package com.rocks.music.videoplayer;
import android.app.Application;
import android.content.Context;
import com.google.firebase.FirebaseApp;
/**
* Created by ashish123 on 22/8/15.
*/
public class MyApplication extends Application {
private static MyApplication mInstance;
@Override
public void onCreate() {
super.onCreate();
mInstance = this;
try {
FirebaseApp.initializeApp(this);
}
catch (Exception e) {
}
}
public static Context getInstance() {
return mInstance;
}
}
Код в файле манифеста: -
<application
android:name="com.rocks.music.videoplayer.MyApplication"
android:allowBackup="true"
android:icon="@drawable/app_icon"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
Хотя вручную инициализировать Firebase с помощью FirebaseApp.initializeApp(this);
, ошибка исчезает, она не устраняет основную причину, некоторые нечетные проблемы собираются вместе, кажется, не решены, например
com.google.android.c2dm.permission.RECEIVE
, которое только для маркера GCM Использовать новый плагин Gradle (например, Android-плагин 2.2.3 и Gradle 2.14.1) исправил все. (Конечно, настройка должна быть правильной согласно документации Firebase )
Одной из причин этого может быть забывание добавления android.permission.INTERNET
разрешений в AndroidManifest.xml
<uses-permission android:name="android.permission.INTERNET" />
Убедитесь, что вы добавили в свой корневой уровень build.gradle
buildscript {
// ...
dependencies {
// ...
classpath 'com.google.gms:google-services:3.0.0'
}
}
. Затем на вашем уровне уровня Gradle (обычно это приложение / build.gradle) добавьте строку «применить плагин» в нижней части файла, чтобы включить плагин Gradle:
apply plugin: 'com.android.application'
android {
// ...
}
dependencies {
// ...
compile 'com.google.firebase:firebase-core:9.6.1'
// Getting a "Could not find" error? Make sure you have
// the latest Google Repository in the Android SDK manager
}
// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'
Как указано в документации . У меня было исключение, как в вопросе выше, когда забыл добавить это в мои файлы gradle.
'com.google.firebase:firebase-core:9.8.0'
, поэтому я изменил ее на compile 'com.google.firebase:firebase-core:9.6.0'
, чтобы соответствовать другим моим библиотекам. Оригинальный ответ Вы смешиваете версии SDK Firebase. как объяснено
– crakama
22 November 2016 в 18:53
Мне не хватало следующую строку в файле app / build.gradle
apply plugin: 'com.google.gms.google-services'
и после очистки и повторного запуска проекта. Это исправило это для меня.
Вам нужно добавить зависимость buildscript Firebase Gradle в build.gradle (уровень проекта)
classpath 'com.google.gms:google-services:3.1.0'
и добавить плагин Firebase для Gradle в приложении / build.gradle
apply plugin: 'com.google.gms.google-services'
build.gradle will include these new dependencies:
compile 'com.google.firebase:firebase-database:11.0.4'
Источник: Android Studio Assistant
Если вы используете FirebaseUI , вам не нужно FirebaseApp.initializeApp(this);
в вашем коде согласно образцу .
Не забудьте добавить в свой корень -level build.gradle:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
...
classpath 'com.google.gms:google-services:3.1.1'
...
}
}
Затем на вашем уровне модуля Gradle file:
dependencies {
...
// 1 - Required to init Firebase automatically (THE MAGIC LINE)
implementation "com.google.firebase:firebase-core:11.6.2"
// 2 - FirebaseUI for Firebase Auth (Or whatever you need...)
implementation 'com.firebaseui:firebase-ui-auth:3.1.2'
...
}
apply plugin: 'com.google.gms.google-services'
Вот и все. Больше не нужно.
apply plugin: 'com.google.gms.google-services'
– pamobo0609 7 March 2018 в 21:29