Android 尝试填充listview时Firebase API初始化失败
我正在尝试制作一个消息传递应用程序,并尝试从我的数据库中获取一个用户列表以填充listview。这个错误以前在我尝试运行应用程序时从未发生过。每次我转到listview活动时,应用程序都会崩溃,并出现以下错误。由于某些原因,我得到了这个错误(Logcat): 以下是我的ListView活动代码:Android 尝试填充listview时Firebase API初始化失败,android,firebase,android-studio,firebase-realtime-database,Android,Firebase,Android Studio,Firebase Realtime Database,我正在尝试制作一个消息传递应用程序,并尝试从我的数据库中获取一个用户列表以填充listview。这个错误以前在我尝试运行应用程序时从未发生过。每次我转到listview活动时,应用程序都会崩溃,并出现以下错误。由于某些原因,我得到了这个错误(Logcat): 以下是我的ListView活动代码: package com.example.paen3.mychatapp; import android.content.Intent; import android.os.Bundle; im
package com.example.paen3.mychatapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.firebase.ui.auth.data.model.User;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
/**
* Created by paen3 on 8/12/2018.
*/
public class AllUsersActivity extends AppCompatActivity {
FirebaseAuth mAuth;
FirebaseDatabase database;
DatabaseReference ref;
ListView listView;
ArrayList<String> list;
ArrayAdapter<String> adapter;
AllUsers user;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_users);
user = new AllUsers();
listView = (ListView) findViewById(R.id.listViewUsers);
database = FirebaseDatabase.getInstance();
ref = database.getReference("user");
list = new ArrayList<>();
adapter = new ArrayAdapter<String>(this,R.layout.all_user_display_layout,R.id.all_users_email, list);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren()){
user = ds.getValue(AllUsers.class);
list.add(user.getUser_email());
}
listView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
if(item.getItemId() == R.id.main_logout_button){
mAuth.signOut();
LogOutUser();
}
return true;
}
private void LogOutUser() {
Intent LoginIntent = new Intent(AllUsersActivity.this, MainActivity.class);
LoginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(LoginIntent);
finish();
}
}
package com.example.paen3.mychatapp;
导入android.content.Intent;
导入android.os.Bundle;
导入android.support.annotation.NonNull;
导入android.support.annotation.Nullable;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.LinearLayoutManager;
导入android.support.v7.widget.RecyclerView;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.ArrayAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入com.firebase.ui.auth.data.model.User;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
导入com.google.firebase.database.DataSnapshot;
导入com.google.firebase.database.DatabaseError;
导入com.google.firebase.database.DatabaseReference;
导入com.google.firebase.database.FirebaseDatabase;
导入com.google.firebase.database.ValueEventListener;
导入java.util.ArrayList;
导入java.util.List;
/**
*paen3于2018年8月12日创建。
*/
公共类AllUsersActivity扩展了AppCompativity活动{
FirebaseAuth mAuth;
Firebase数据库;
数据库参考文献;
列表视图列表视图;
数组列表;
阵列适配器;
诱惑者用户;
@凌驾
创建时受保护的void(@Nullable Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u所有用户);
用户=新的用户();
listView=(listView)findViewById(R.id.listViewUsers);
database=FirebaseDatabase.getInstance();
ref=database.getReference(“用户”);
列表=新的ArrayList();
适配器=新阵列适配器(此,R.layout.all\u user\u display\u layout,R.id.all\u users\u email,list);
ref.addValueEventListener(新的ValueEventListener(){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
对于(DataSnapshot ds:DataSnapshot.getChildren()){
user=ds.getValue(AllUsers.class);
list.add(user.getUser_email());
}
setAdapter(适配器);
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
}
});
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
super.onCreateOptions菜单(菜单);
getMenuInflater().充气(右菜单.主菜单,菜单);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
super.onOptionsItemSelected(项目);
if(item.getItemId()==R.id.main\u注销按钮){
mAuth.signOut();
LogOutUser();
}
返回true;
}
私有void LogOutUser(){
Intent LoginIntent=新的Intent(AllUsersActivity.this、MainActivity.class);
LoginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(登录);
完成();
}
}
请添加build.gradle文件的内容。您可以在此处找到答案:[Firebase API初始化失败]()
package com.example.paen3.mychatapp;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import com.firebase.ui.auth.data.model.User;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import java.util.ArrayList;
import java.util.List;
/**
* Created by paen3 on 8/12/2018.
*/
public class AllUsersActivity extends AppCompatActivity {
FirebaseAuth mAuth;
FirebaseDatabase database;
DatabaseReference ref;
ListView listView;
ArrayList<String> list;
ArrayAdapter<String> adapter;
AllUsers user;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_all_users);
user = new AllUsers();
listView = (ListView) findViewById(R.id.listViewUsers);
database = FirebaseDatabase.getInstance();
ref = database.getReference("user");
list = new ArrayList<>();
adapter = new ArrayAdapter<String>(this,R.layout.all_user_display_layout,R.id.all_users_email, list);
ref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
for(DataSnapshot ds: dataSnapshot.getChildren()){
user = ds.getValue(AllUsers.class);
list.add(user.getUser_email());
}
listView.setAdapter(adapter);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
getMenuInflater().inflate(R.menu.main_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
if(item.getItemId() == R.id.main_logout_button){
mAuth.signOut();
LogOutUser();
}
return true;
}
private void LogOutUser() {
Intent LoginIntent = new Intent(AllUsersActivity.this, MainActivity.class);
LoginIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
startActivity(LoginIntent);
finish();
}
}