我的Firebase项目出现错误java.lang.NoSuchMethodError [英] Error java.lang.NoSuchMethodError on my Firebase project

查看:44
本文介绍了我的Firebase项目出现错误java.lang.NoSuchMethodError的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图从Firebase检索数据到Android项目上的recycler-view. 首先,这是我在firebase上的结构数据库

i tried to retrieving data from Firebase to recycler-view on my Android project. first, here's my structure database on firebase

然后,我写Ph课

public class Ph {

    public String date;
    public String nilai;
    public String time;

    public Ph(){
    }

    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

    public String getNilai() {
        return nilai;
    }

    public void setNilai(String nilai) {
        this.nilai = nilai;
    }

    public String getTime() {
        return time;
    }

    public void setTime(String time) {
        this.time = time;
    }
}

为保存数据,我创建了PhAdapter类.

to save data, i create PhAdapter class.

    public class PhAdapter extends RecyclerView.Adapter<PhAdapter.PhViewHolder> {

    private ArrayList<Ph> dataList;
    public int rowLayout;
    private Context context;

    public static class PhViewHolder extends RecyclerView.ViewHolder {

        private TextView tvNilai, tvDate, tvTime;
        private LinearLayout phLayout;

        public PhViewHolder(View itemview) {
            super(itemview);
            phLayout = (LinearLayout) itemview.findViewById(R.id.ph_view);
            tvNilai = (TextView) itemview.findViewById(R.id.tv_ph);
            tvTime = (TextView) itemview.findViewById(R.id.tv_time);
            tvDate = (TextView) itemview.findViewById(R.id.tv_date);
        }
    }

    public PhAdapter(ArrayList<Ph> dataList, Context context) {
        this.dataList = dataList;
        this.context = context;
    }

    @Override
    public PhAdapter.PhViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(parent.getContext()).inflate(rowLayout, parent, false);
        return new PhViewHolder(view);
    }

    @Override
    public void onBindViewHolder(final PhViewHolder holder, final int position) {
        holder.tvNilai.setText(dataList.get(position).getNilai());
        holder.tvTime.setText(dataList.get(position).getTime());
        holder.tvDate.setText(dataList.get(position).getDate());
    }

    @Override
    public int getItemCount() {
        return dataList.size();
    }
}

最后一个是我的MainActivity类

the last one, my MainActivity class

public class MainActivity extends AppCompatActivity {

    private static final String TAG = MainActivity.class.getSimpleName();
    TextView txtNilai, txtDate, txtTime;
    Button cekdata;

    private DatabaseReference mDatabase;
    //get reference database

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

        final RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view1);
        recyclerView.setLayoutManager(new LinearLayoutManager(this));

        cekdata = (Button)findViewById(R.id.btn_cekdata);
        txtNilai = (TextView)findViewById(R.id.tv_ph);
        txtDate = (TextView)findViewById(R.id.tv_date);
        txtTime = (TextView)findViewById(R.id.tv_time);

        //firebase
        mDatabase = FirebaseDatabase.getInstance().getReference("https://raspi-ph.firebaseio.com/Fakultas Teknik/ph");
        FirebaseDatabase.getInstance().setPersistenceEnabled(true);

        cekdata.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                ValueEventListener postListener = new ValueEventListener() {
                    @Override
                    public void onDataChange(DataSnapshot dataSnapshot) {
                        Ph ph = dataSnapshot.getValue(Ph.class);
                    }

                    @Override
                    public void onCancelled(DatabaseError databaseError) {
                        //Getting Ph failed, log a message
                        Log.w(TAG, "loadPost:onCancelled", databaseError.toException());
                    }
                };
                mDatabase.addValueEventListener(postListener);
            }
        });
    }
}

但是,当我将项目运行到模拟器时,出现错误java.lang.NoSuchErrorMethod. MainActivity上第42行引起的错误是获取参考数据库的行.

but, when i run the project to emulator, i got error java.lang.NoSuchErrorMethod. the error cause by line 42 on MainActivity, is a line to get reference database.

请帮助我.我的代码有什么错误吗?

please help me. there's something error in my code?

错误消息:

07-09 08:45:54.124 6296-6296/com.example.titiarimba.raspi_ph E/AndroidRuntime:致命异常:main 流程:com.example.titiarimba.raspi_ph,PID:6296 java.lang.NoSuchMethodError:类Lcom/google/firebase/FirebaseApp中没有虚拟方法zzbqo()Z;或其超类(声明为 "com.google.firebase.FirebaseApp"出现在 /data/app/com.example.titiarimba.raspi_ph-2/split_lib_dependencies_apk.apk) 在com.google.firebase.database.FirebaseDatabase.getInstance(未知 来源) 在com.google.firebase.database.FirebaseDatabase.getInstance(未知 来源) 在com.example.titiarimba.raspi_ph.MainActivity.onCreate(MainActivity.java:43) 在android.app.Activity.performCreate(Activity.java:5990) 在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) 在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) 在android.app.ActivityThread.access $ 800(ActivityThread.java:151) 在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1303) 在android.os.Handler.dispatchMessage(Handler.java:102) 在android.os.Looper.loop(Looper.java:135) 在android.app.ActivityThread.main(ActivityThread.java:5254) 在java.lang.reflect.Method.invoke(本机方法) 在java.lang.reflect.Method.invoke(Method.java:372) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:903) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

07-09 08:45:54.124 6296-6296/com.example.titiarimba.raspi_ph E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.titiarimba.raspi_ph, PID: 6296 java.lang.NoSuchMethodError: No virtual method zzbqo()Z in class Lcom/google/firebase/FirebaseApp; or its super classes (declaration of 'com.google.firebase.FirebaseApp' appears in /data/app/com.example.titiarimba.raspi_ph-2/split_lib_dependencies_apk.apk) at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source) at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source) at com.example.titiarimba.raspi_ph.MainActivity.onCreate(MainActivity.java:43) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

推荐答案

此问题已解决.我从Firebase控制台下载google-service.json并将其添加到project/app文件夹:)

this question is solve. i downloading google-service.json from firebase console and add it to project/app folder :)

这篇关于我的Firebase项目出现错误java.lang.NoSuchMethodError的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆