我在google开发者控制台上遇到了这个奇怪的错误.所以我使用谷歌云测试实验室来了解真正发生的事情.结果我的应用程序在几乎所有设备上都失败了
FATAL EXCEPTION: main
Process: com.blackcurrantapps.iamin, PID: 16706
java.lang.NoClassDefFoundError: com.google.firebase.FirebaseOptions
at com.google.firebase.FirebaseApp.zzbu(Unknown Source)
at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1591)
at android.content.ContentProvider.attachInfo(ContentProvider.java:1562)
at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)
at android.app.ActivityThread.installProvider(ActivityThread.java:4871)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:4466)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4406)
at android.app.ActivityThread.access$1500(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1270)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5102)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
现在这是有趣的部分,我根本不在我的应用程序中使用Firebase.当我在整个应用程序中查找路径时,没有引用"Firebase"这个词.我虽然使用谷歌云服务,登录和谷歌应用程序引擎.
这是我的build.gradle文件:
buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: …Run Code Online (Sandbox Code Playgroud) google-app-engine android firebase google-play-services google-cloud-platform
据我所知,Promise.all()并行执行所有操作,并在任何一个Promises中的第一个错误实例中返回错误.
现在如果我想并行运行所有承诺并等待它们完成即使其中一个失败了怎么办?
是否有我应该使用的Promise方法或模块?
我并行发送一堆用户FCM推送通知,如果其中任何一个失败,则无法通过.then()排队.
我在我的代码中这样做
//then chain
.then(()=>{
let startChatPromises = [];
for (let i = 0 ; i < queue_length ; i ++){
startChatPromises.push(matchUsers(some_key,some_key));
}
return Promise.all(startChatPromises);
}).then(()=>{// Continue processing even after failure ?});
let matchUsers = (room_id,...user_ids) => {
let chat_key = admin.database().ref().child("chats").child(room_id).push().key;
let participants = {};
user_ids.forEach(user_id=> {
participants[`${user_id}`] = true;
});
return admin.database().ref().child("chats").child(room_id).child(chat_key).update({
"last_message_ts" : new Date().getTime(),
"participants" : participants
}).then(()=>{
//Get Users
let getFCMTokenPromises = [];
user_ids.forEach(user_id => {
getFCMTokenPromises.push(admin.database().ref("users").child(user_id).child("fcm_id").once('value'));
});
return Promise.all(getFCMTokenPromises);
}).then(results => …Run Code Online (Sandbox Code Playgroud) 我NestedScrollView在布局上遇到了问题CollapsingToolbarLayout。当我将文本滚动到底部时,导航栏覆盖了最后一句。
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true">
<android.support.design.widget.AppBarLayout
android:id="@+id/appBar"
android:layout_width="match_parent"
android:layout_height="250dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/collapsing_toolbar"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="?attr/colorPrimary"
app:expandedTitleTextAppearance="@style/ExpandedAppBar"
app:layout_scrollFlags="scroll|exitUntilCollapsed"
app:title="Title">
<ImageView
android:id="@+id/toolbar_image_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/visit_at_office"
app:layout_collapseMode="parallax" />
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:layout_collapseMode="pin" />
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fitsSystemWindows="true"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<TextView
android:id="@+id/textView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/lorem_ipsum" />
</android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>
Run Code Online (Sandbox Code Playgroud)
向 TextView 添加边距底部修复了这个错误,但我想知道任何更好的解决方案以及为什么会发生这种情况。请问有人可以帮我吗?
android android-collapsingtoolbarlayout android-nestedscrollview