【发布时间】:2020-08-18 21:36:04
【问题描述】:
我的应用程序崩溃了...
我无法理解为什么 iS 会出现此错误,以及如何删除此错误以使应用程序开始工作。
在 logcat 中它指出: java.lang.NullPointerException:不能在 child() 中为参数“pathString”传递 null
2020-08-19 02:44:21.603 25163-25282/com。 E/Parcel:此处不支持读取 NULL 字符串。
我的活动:
public class MainActivity extends AppCompatActivity {
private NavigationView navigationView;
private DrawerLayout drawerLayout;
private ActionBarDrawerToggle actionBarDrawerToggle;
private RecyclerView postList;
private Toolbar mToolbar;
private CircleImageView NavProfileImage;
private TextView NavProfileUserName;
private FirebaseAuth mAuth;
private DatabaseReference UsersRef;
String CurrentUserID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mAuth = FirebaseAuth.getInstance();
CurrentUserID = mAuth.getCurrentUser().getUid();
UsersRef = FirebaseDatabase.getInstance().getReference().child("Users");
mToolbar = (Toolbar) findViewById(R.id.main_page_toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setTitle("Home");
drawerLayout = (DrawerLayout) findViewById(R.id.drawable_layout);
actionBarDrawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.drawer_open, R.string.drawer_closed);
drawerLayout.addDrawerListener(actionBarDrawerToggle);
actionBarDrawerToggle.syncState();
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
navigationView = (NavigationView) findViewById(R.id.navigation_view);
View navView = navigationView.inflateHeaderView(R.layout.navigation_header);
NavProfileImage = (CircleImageView) navView.findViewById(R.id.nav_profile_image);
NavProfileUserName = (TextView) navView.findViewById(R.id.nav_user_full_name);
UsersRef.child(CurrentUserID).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
if (snapshot.exists()) {
if (snapshot.hasChild("fullname")) {
String fullname = snapshot.child("fullname").getValue().toString();
NavProfileUserName.setText(fullname);
}
if (snapshot.hasChild("profileimage")) {
String image = snapshot.child("profileimage").getValue().toString();
Picasso.get().load(image).placeholder(R.drawable.ic_profile_pic_grey).into(NavProfileImage);
}
else {
Toast.makeText(MainActivity.this, "Profile name does not exist...", Toast.LENGTH_SHORT).show();
}
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
UserMenuSelector(item);
return false;
}
});
}
我的日志:
2020-08-19 02:44:21.603 25163-25282/com.app E/Parcel: Reading a NULL string not supported here.
2020-08-19 02:44:21.666 25163-25280/com.app V/FA: onActivityCreated 2020-08-19 02:44:21.828 25163-25336/com.appi V/FA: 连接到远程服务 2020-08-19 02:44:21.887 25163-25336/com.app V/FA: 连接尝试已在进行中 2020-08-19 02:44:21.949 25163-25336/? V/FA:连接尝试已在进行中 2020-08-19 02:44:21.953 25163-25163/? W/ActionBarDrawerToggle:DrawerToggle 可能不会显示,因为 NavigationIcon 不可见。您可能需要调用 actionbar.setDisplayHomeAsUpEnabled(true); 2020-08-19 02:44:21.969 25163-25163/? D/OpenGLRenderer:Skia GL Pipeline 2020-08-19 02:44:21.969 25163-25163/? D/MMListParser: onlineVersion -1 defaultVersion 20191101 2020-08-19 02:44:21.970 25163-25163/? D/mmscene:打开服务器配置失败 /data/oppo/multimedia/oppo_display_perf_list.xml 2020-08-19 02:44:21.971 25163-25163/? D/mmscene: getHint applicationScene=com.appinion,idx=0 none 2020-08-19 02:44:21.981 25163-25163/? D/AndroidRuntime:关闭虚拟机 2020-08-19 02:44:21.985 25163-25163/? E/AndroidRuntime: 致命异常: main 进程:com.app,PID:25163 java.lang.RuntimeException:无法启动活动 ComponentInfo{com.app/com.app.MainActivity}:java.lang.NullPointerException:无法在 child() 中为参数“pathString”传递 null 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3146) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3296) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:114) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:74) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:226) 在 android.app.ActivityThread.main(ActivityThread.java:7224) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913) 引起:java.lang.NullPointerException:不能在 child() 中为参数 'pathString' 传递 null 在 com.google.firebase.database.DatabaseReference.child(DatabaseReference.java:96) 在 com.appinion.MainActivity.onCreate(MainActivity.java:72) 在 android.app.Activity.performCreate(Activity.java:7337) 在 android.app.Activity.performCreate(Activity.java:7328) 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1272) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3126) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3296) 在 android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:114) 在 android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:74) 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1994) 在 android.os.Handler.dispatchMessage(Handler.java:106) 在 android.os.Looper.loop(Looper.java:226) 在 android.app.ActivityThread.main(ActivityThread.java:7224) 在 java.lang.reflect.Method.invoke(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:500) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:913) 2020-08-19 02:44:21.999 25163-25163/? I/Process:发送信号。 PID:25163 SIG:9
告诉我哪里出错了... 请帮帮我.....
谢谢...
【问题讨论】: