android中的“println需要一条消息”错误
Posted
技术标签:
【中文标题】android中的“println需要一条消息”错误【英文标题】:"println needs a message" error in android 【发布时间】:2022-01-01 04:07:00 【问题描述】:我想在 firebase 中读取 Playlist_ID 为 2 的组的 Music_ID。
出现以下错误。
java.lang.NullPointerException: println needs a message
这是我的 firebase 实时数据库。
这是我的代码。
database = FirebaseDatabase.getInstance();
storage = FirebaseStorage.getInstance();
dref = FirebaseDatabase.getInstance().getReference();
private void Startplaylist(String mood)
DatabaseReference plist = dref.child("Playlist");
plist.orderByChild("Playlist_ID").equalTo(2).addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
// Log.i("Value", dataSnapshot.getValue().toString());
String music_id = dataSnapshot.child("Music_ID").getValue(String.class);
Log.i("Value_id", music_id);
str_musictitle.setText(music_id);
@Override
public void onCancelled(@NonNull DatabaseError error)
);
弹出此部分出错的告警。
Log.i("Value_id", music_id);
我认为“music_id”没有被读取。
我试图改变部分
String music_id = dataSnapshot.child("Music_ID").getValue(String.class);
到String music_ids = dataSnapshot.child("Music_ID").getValue().toString();
并运行它,但我无法得到想要的结果。
【问题讨论】:
music_id 为空。您显然不能记录空值。我看到的明显的东西是它在数据库中的 Music_ID,我相信它是区分大小写的。 我修改为String music_id = dataSnapshot.child("Music_ID").getValue(String.class);
,还是不行。
【参考方案1】:
当您对 Firebase 数据库执行查询时,可能会有多个结果。所以快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果列表。
onDataChange
中的代码需要通过循环 dataSnapshot.getChildren()
来处理此列表。像这样的:
DatabaseReference plist = dref.child("Playlist");
plist.orderByChild("Playlist_ID").equalTo(2).addValueEventListener(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
for (DataSnapshot snapshot: dataSnapshot.getChildren()) // ? Loop over results
String music_id = snapshot.child("Music_ID").getValue(String.class); // ? Get value for this result
Log.i("Value_id", music_id);
str_musictitle.setText(music_id);
@Override
public void onCancelled(@NonNull DatabaseError error)
throw error.toException(); // ? Never ignore possible errors
);
【讨论】:
非常感谢。谢谢你,终于解决了!!!以上是关于android中的“println需要一条消息”错误的主要内容,如果未能解决你的问题,请参考以下文章
Android java.lang.NullPointerException:println需要一条消息[重复]
Android NDK 开发NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )
Android NDK 开发NDK C/C++ 代码崩溃调试 - Tombstone 报错信息日志文件分析 ( 使用 addr2line 命令行工具查找动态库中的报错代码位置 )