android - 记录事件 (FE) : app_exception(_ae), Bundle[{firebase_event_origin(_o)=crash

标签 android firebase error-handling

我有一个应用程序,里面有很多 Activity ,其中一些连接到 Firebase 数据库。最近,当我去到有 Firebase 调用的 Activity 和之前的 Activity 时,我开始遇到崩溃。应用程序崩溃后,它会重新启动,然后正常运行。所以只有在我通过 USB 安装它之后它才会这样做。发生崩溃时 Logcat 显示:

1-17 21:47:38.030 10998-11021/packagename D/FA: Logging event (FE): app_exception(_ae), Bundle[{firebase_event_origin(_o)=crash, timestamp=1516222057770, fatal=1}]
01-17 21:47:39.291 24162-10793/? V/FA-SVC: Logging event: origin=crash,name=app_exception(_ae),params=Bundle[{firebase_event_origin(_o)=crash, timestamp=1516222057770, fatal=1}]
01-17 21:47:39.321 24162-10793/? V/FA-SVC: Saving event, name, data size: app_exception(_ae), 51
01-17 21:47:39.321 24162-10793/? V/FA-SVC: Event recorded: Event{appId='packagename', name='app_exception(_ae)', params=Bundle[{firebase_event_origin(_o)=crash, timestamp=1516222057770, fatal=1}]}
01-17 21:47:39.331 24162-10793/? V/FA-SVC: Upload scheduled in approximately ms: 2620327
01-17 21:47:39.471 24162-10793/? V/FA-SVC: Scheduling upload with GcmTaskService
01-17 21:47:39.471 24162-10793/? V/FA-SVC: Scheduling task with Gcm. Time2620327
01-17 21:47:39.702 24162-10793/? V/FA-SVC: Background event processing time, ms: 412

引起我注意的部分是:

Logging event (FE): app_exception(_ae), bundle[{firebase_event_origin(_o)=crash

但是,我不知道如何处理它...很明显它来自 Firebase,但具体来自哪里?

包含 Firebase 脚本的 Java 文件如下:

package packagename;

import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.firebase.ui.database.FirebaseRecyclerAdapter;
import com.firebase.ui.storage.images.FirebaseImageLoader;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.storage.FirebaseStorage;
import com.google.firebase.storage.StorageReference;

import packagename.model.Post;
import packagename.utils.Constants;
import packagename.utils.Utils;


public class Evenimente extends AppCompatActivity {

  private RecyclerView mPostRV;
  private FirebaseRecyclerAdapter < Post, PostViewHolder > mPostAdapter;
  private DatabaseReference mPostRef;
  static boolean calledAlready = false;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if (!calledAlready) {
      FirebaseDatabase.getInstance().setPersistenceEnabled(true);
      calledAlready = true;
    }
    setContentView(R.layout.activity_evenimente);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);
    getSupportActionBar().setDisplayShowTitleEnabled(false);
    if (getSupportActionBar() != null) {
      getSupportActionBar().setDisplayHomeAsUpEnabled(true);
      getSupportActionBar().setDisplayShowHomeEnabled(true);
    }

    initialiseScreen();
  }
  public boolean onSupportNavigateUp() {
    onBackPressed();
    return true;
  }


  private void sendPostToFirebase() {
    Post post = new Post();
    String UID = Utils.getUID();

    post.setUID(UID);
    post.setHeadline("Nume eveniment");
    post.setZiua(25);
    post.setOra("10:00");
    post.setLuna("IAN");
    post.setCategoria("Teatru");
    post.setOrganizator("Casa de Cultura");
    post.setStrada("Strada:");
    post.setLocalitatea("Undeva");

    /*  post.setNumLikes(0);*/
    post.setImageUrl("gs://packagename1234.appspot.com/teatru.jpg");
    mPostRef.child(UID).setValue(post);
  }

  private void initialiseScreen() {
    mPostRV = (RecyclerView) findViewById(R.id.post_rv);
    mPostRV.setLayoutManager(new LinearLayoutManager(Evenimente.this));
    mPostRef = FirebaseDatabase.getInstance().getReference(Constants.POSTS);
    mPostRef.keepSynced(true);
    setupAdaptater();
    mPostRV.setAdapter(mPostAdapter);
  }

  private void setupAdaptater() {
    mPostAdapter = new FirebaseRecyclerAdapter < Post, PostViewHolder > (
      Post.class,
      R.layout.item_layout_evenimente,
      PostViewHolder.class,
      mPostRef
    ) {
      @Override
      protected void populateViewHolder(PostViewHolder viewHolder, final Post model, int position) {
        StorageReference storageReference = FirebaseStorage.getInstance().getReferenceFromUrl(model.getImageUrl());
        Glide.with(Evenimente.this)
          .using(new FirebaseImageLoader())
          .load(storageReference)
          .into(viewHolder.postIV);



        viewHolder.setHeadline(model.getHeadline());
        viewHolder.setZiua(model.getZiua());
        viewHolder.setLuna(model.getLuna());
        viewHolder.setOra(model.getOra());
        viewHolder.setOrganizator(model.getOrganizator());
        viewHolder.setCategoria(model.getCategoria());
        viewHolder.setStrada(model.getStrada());

        viewHolder.setLocalitatea(model.getLocalitatea());


      }
    };
  }

  public static class PostViewHolder extends RecyclerView.ViewHolder {
    public ImageView postIV;
    public TextView postHeadline;
    public TextView postZiua;
    public TextView postLuna;
    public TextView postOra;
    public TextView postOrganizator;
    public TextView postCategoria;
    public TextView postStrada;
    public TextView postNumar_strada;
    public TextView postLocalitatea;

    public PostViewHolder(View itemView) {
      super(itemView);
      postIV = (ImageView) itemView.findViewById(R.id.post_iv);
      postHeadline = (TextView) itemView.findViewById(R.id.headline_event);
      postZiua = (TextView) itemView.findViewById(R.id.text_ziua);
      postLuna = (TextView) itemView.findViewById(R.id.text_luna);
      postOra = (TextView) itemView.findViewById(R.id.text_ora);
      postOrganizator = (TextView) itemView.findViewById(R.id.text_organizator);
      postCategoria = (TextView) itemView.findViewById(R.id.text_categoria);
      postStrada = (TextView) itemView.findViewById(R.id.text_strada);
      postLocalitatea = (TextView) itemView.findViewById(R.id.text_localitatea);
    }

    public void setPostImage(String url) {
      StorageReference storageReference = FirebaseStorage.getInstance().getReferenceFromUrl(url);
    }

    public void setHeadline(String headline) {
      postHeadline.setText(String.valueOf(headline));
    }

    public void setZiua(long ziua) {
      postZiua.setText(String.valueOf(ziua));
    }

    public void setLuna(String luna) {
      postLuna.setText(String.valueOf(luna));
    }

    public void setOra(String ora) {
      postOra.setText(String.valueOf(ora));
    }

    public void setOrganizator(String organizator) {
      postOrganizator.setText(String.valueOf(organizator));
    }

    public void setCategoria(String categoria) {
      postCategoria.setText(String.valueOf(categoria));
    }

    public void setStrada(String strada) {
      postStrada.setText(String.valueOf(strada));
    }

    public void setLocalitatea(String localitatea) {
      postLocalitatea.setText(String.valueOf(localitatea));
    }

  }
}

阅读此错误后here ,我看到有人提示可能是字符长度的问题,但我无法弄清楚这是不是我的问题。我的数据库中不会超过 40 个字符。

Firebase 上的数据库配置如下图所示: enter image description here

错误是一个模糊的错误,我真的不知道从哪里开始。谁能帮我?谢谢!

最佳答案

您显示的日志并不是因为您的应用当时崩溃了。这是 Google Analytics for Firebase 记录您的应用程序之前崩溃的事实,并为此生成分析事件。您还可以看到这些只是详细级别的严重性消息。真正的崩溃将伴随着带有错误级别严重性消息的消息,并且通常伴随着 Java 堆栈跟踪。

关于android - 记录事件 (FE) : app_exception(_ae), Bundle[{firebase_event_origin(_o)=crash,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48310294/

相关文章:

android - 如何从数据库中获取数据并显示在ListView上?

swift - 我的完成处理程序总是返回一个空数组,为什么?

ruby-on-rails - 如何在 rails 开发环境中测试错误页面?

python - 无法通过子处理捕获 os 错误

android - 如何在baseAdapter中使用onclick按钮

android - 支持 Honeycomb 中的两种横向方向

单选中的android图像

ios - 适用于 iOS Today 扩展的 Firebase 分析(小部件扩展)

node.js - 在 firebase 函数中使用类?

exception - 处理错误-Elixir