Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/211.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何处理数据库异常?_Java_Android_Firebase_Android Recyclerview - Fatal编程技术网

Java 如何处理数据库异常?

Java 如何处理数据库异常?,java,android,firebase,android-recyclerview,Java,Android,Firebase,Android Recyclerview,主要活动 public class MainActivity extends AppCompatActivity { RecyclerView mRecyclerView; FirebaseAdapter mAdapter; private static final String TAG = "MainActivity"; @Override protected void onCreate(Bundle savedInstanceS

主要活动

public class MainActivity extends AppCompatActivity {

    RecyclerView mRecyclerView;
    FirebaseAdapter mAdapter;
    private static final String TAG = "MainActivity";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mRecyclerView = (RecyclerView)findViewById(R.id.recyclerview);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

        FirebaseRecyclerOptions<DataClass> options = new FirebaseRecyclerOptions.Builder<DataClass>()
                .setQuery(FirebaseDatabase.getInstance().getReference().child("Users"), DataClass.class)
                .build();

        mAdapter = new FirebaseAdapter(options);
        mRecyclerView.setAdapter(mAdapter);
        mRecyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));
    }
    @Override
    protected void onStart() {
        super.onStart();
        mAdapter.startListening();
    }
    @Override
    protected void onStop() {
        super.onStop();
        mAdapter.stopListening();
    }
}
错误:

 2020-11-24 14:19:05.520 7304-7304/com.example.firebasesearchrec D/FirebaseAdapter: onCreateViewHolder: Now on create method executing
    2020-11-24 14:19:05.535 7304-7304/com.example.firebasesearchrec D/AndroidRuntime: Shutting down VM
    2020-11-24 14:19:05.547 7304-7304/com.example.firebasesearchrec E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.firebasesearchrec, PID: 7304
        com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.firebasesearchrec.DataClass
            at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)
            at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)
我遇到数据库异常无法转换java.lang类型的对象有人能帮我解决这个问题吗。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
谢谢您尝试调试firebase响应,因为我怀疑您的数据类型不同,这应该是一个字符串

您正在尝试读取字符串类型的数据,实际上它是数据类的类型这是因为您遇到了此错误。您需要根据需要更改代码


有关更多详细信息,您可以查看。

问题是查询db返回字符串的结果。您尝试读取该节点的子数据,或者数据与对象数据类不匹配

此问题有您的答案!不,我不明白该怎么做才能清除这个错误请编辑您的问题,并将您的数据库结构添加为JSON文件或至少是屏幕截图。请回复@AlexMamonow检查我已经添加了我的数据库但不是json我希望你能理解因为它只有一个名字和一个昵称所有都是字符串只有IDK我怎么会出错我不明白你能告诉我怎么解决吗我编辑了我的问题,我添加了我的数据库只有一个名字一个昵称可以吗分享firebase db的屏幕截图,这样我们就可以查看其结构并在此基础上给出答案。检查一下,我已经分享了它。这两个都是字符串,我在自定义类别1中使用了字符串数据类型。FirebaseRecyclerOptions选项=新建FirebaseRecyclerOptions.Builder().setQuery(FirebaseDatabase.getInstance().getReference(),DataClass.class).build();2.在DataClass>make'N'大写名称到名称以及在getter setter中
public class DataClass {
      String name;
      String Nickname;

    public DataClass(){

    }

    public DataClass(String name, String Nickname) {
        this.name = name;
        this.Nickname= Nickname;
    }

    public String getName() {
        return name;
    }

    public String getNickname() {
        return Nickname;
    }
}
 2020-11-24 14:19:05.520 7304-7304/com.example.firebasesearchrec D/FirebaseAdapter: onCreateViewHolder: Now on create method executing
    2020-11-24 14:19:05.535 7304-7304/com.example.firebasesearchrec D/AndroidRuntime: Shutting down VM
    2020-11-24 14:19:05.547 7304-7304/com.example.firebasesearchrec E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.firebasesearchrec, PID: 7304
        com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type com.example.firebasesearchrec.DataClass
            at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.convertBean(CustomClassMapper.java:436)
            at com.google.firebase.database.core.utilities.encoding.CustomClassMapper.deserializeToClass(CustomClassMapper.java:232)