当前位置: 首页 > 知识库问答 >
问题:

java.lang.noClassDefFoundError:解析失败:lcom/google/android/gms/common/internal/zzbp

孙明德
2023-03-14

e/androidruntime:致命异常:main process:com.eldercare.fajri.eldercare,pid:30948 java.lang.noClassDefFounderror:解析失败:lcom/google/android/gms/common/internal/zzbp;在com.google.firebase.firestore.firebase.firestore.zze(未知来源)在com.google.firebase.firestore.firebase.firebaseFirestore.getinstance(未知来源)在com.eldercare.fajri.eldercare.boundary.homeactivity.oncreate(未知来源)在android.app.activity.performcreate(homeactivity.java:71)在android.app.activity.performcreate itythread.java:2842),android.app.activitythread.-wrap12(activitythread.java),android.app.activitythread.h.h.handlemessage(activitythread.java:1560),android.os.handler.dispatchmessage(handler.java:110),android.os.handler.lapper.looper.main(activitythread.java:203),android.app.activitythread.main(activitythread.jav76)在com.android.internal.os.zygoteinit.main(Zygoteinit.java:937)原因:java.lang.ClassNotFoundException:在路径:dexpathList[[zip文件“/data/app/com.eldercare.fajri.eldercare-1/base.apk”],nativelibraryDirectories=[/data/app/com.eldercare.fajri.eldercare-1/lib/arm64,/system/lib64,/vendor/lib64,/system/vendor/lib64]]处.java:380)在java.lang.classloader.loadclass(classloader.java:312)在com.google.firebase.firestore.firebase.firebase.firebaseFirestore.zze(来源未知) 在com.google.firebase.firebase.firebase.firebase.firebase.firebase.firebase.firebaseFirestore.getinstance(来源未知) 在ITYThread.java:2730) 在Android.app.activitythread.handlelaunchactivity(activitythread.java:2842) 在Android.app.activitythread.-Wrap12(activitythread.java) 在Android.app.activitythread.-Wrap12(activitythread.java) 在Android.app.activitythread.$H.HandleMessage(activitythread.java:1560) 在Android.os.handler.dispatchMessage(.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:1076) 在com.android.internal.os.zygoteinit.main(zygoteinit.java:937)

这是我的建筑。格雷德尔:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
        applicationId "com.eldercare.fajri.eldercare"
        minSdkVersion 19
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.RDescActivity.runner.AndroidJUnitRunner"
        vectorDrawables.useSupportLibrary = true
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:26.1.0'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:support-vector-drawable:26.1.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
    implementation 'com.google.firebase:firebase-core:16.0.1'
    implementation 'com.google.firebase:firebase-firestore:11.4.2'
    implementation 'com.google.firebase:firebase-auth:16.0.1'
    implementation 'com.android.support:design:26.1.0'
    implementation 'com.android.support:cardview-v7:26.1.0'
    implementation 'com.android.support:recyclerview-v7:26.1.0'
    implementation 'com.github.d-max:spots-dialog:0.7@aar'
    implementation 'com.rengwuxian.materialedittext:library:2.1.4'

    implementation "com.google.android.gms:play-services-base:15.0.1"

    implementation "com.google.android.gms:play-services-gcm:15.0.1"

    implementation 'com.github.wdullaer:MaterialDateTimePicker:v3.0.0'

    implementation 'com.github.ganfra:material-spinner:1.1.1'

    implementation 'gr.pantrif:easy-android-splash-screen:0.0.1'

    androidTestImplementation 'org.testng:testng:6.9.6'
}
apply plugin: 'com.google.gms.google-services'

这是我的项目。格雷德尔:

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {

    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.1'
        classpath 'com.google.gms:google-services:4.0.1'

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven{

            url "http://maven.google.com"
        }
        maven{
            url "https://jitpack.io"
        }
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}

家庭活动:

package com.eldercare.fajri.eldercare.boundary;

import android.app.Activity;
import android.app.DatePickerDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.design.widget.FloatingActionButton;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatButton;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TextView;
import android.widget.Toast;

import com.eldercare.fajri.eldercare.control.ListItemReminderAdapter;
import com.eldercare.fajri.eldercare.control.Reminder;
import com.eldercare.fajri.eldercare.R;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.OnFailureListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.firestore.CollectionReference;
import com.google.firebase.firestore.DocumentSnapshot;
import com.google.firebase.firestore.FirebaseFirestore;
import com.google.firebase.firestore.QuerySnapshot;
import com.rengwuxian.materialedittext.MaterialEditText;

import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;

import dmax.dialog.SpotsDialog;

public class HomeActivity extends AppCompatActivity {

    List<Reminder> reminderList = new ArrayList<>();

    FirebaseFirestore db;

    RecyclerView listItem;

    Reminder reminder;

    RecyclerView.LayoutManager layoutManager;

    public static Activity ha;
    FloatingActionButton fab;
    AppCompatButton next,prev;

    public String date;
    public TextView thedate;
    public MaterialEditText title,description,time;
    public boolean isUpdate = false;
    public boolean menu=false;
    public String idUpdate;

    ListItemReminderAdapter adapter;
    SpotsDialog dialog;

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

        ha = this;

        db = FirebaseFirestore.getInstance();

        thedate = (TextView)findViewById(R.id.thedate);

        dialog = new SpotsDialog(this);
        title = (MaterialEditText)findViewById(R.id.title);
        description = (MaterialEditText)findViewById(R.id.description);
        time = (MaterialEditText)findViewById(R.id.time);

        final Calendar now;
        now = Calendar.getInstance();
        int year = now.get(Calendar.YEAR);
        int month = now.get(Calendar.MONTH);
        int day = now.get(Calendar.DAY_OF_MONTH);

        final String today = (day +"-"+(month+1)+"-"+ year);
        date = today;
        thedate.setText(today);
        if(thedate.getText().equals(today)){
            thedate.setText("Today");
        }

        prev = (AppCompatButton)findViewById(R.id.prev);
        prev.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                now.add(Calendar.DAY_OF_MONTH,-1);
                int day = now.get(Calendar.DAY_OF_MONTH);

                int month=now.get(Calendar.MONTH);
                if(day<1) {
                    now.add(Calendar.MONTH,-1);
                }

                int year = now.get(Calendar.YEAR);
                if ((month+1)<1){
                    now.add(Calendar.YEAR,-1);
                }

                date = (day +"-"+(month+1)+"-"+ year);
                thedate.setText(day +"-"+(month+1)+"-"+ year);
                if(thedate.getText().equals(today)){
                    thedate.setText("Today");
                }
                loadData();

            }
        });

        next = (AppCompatButton)findViewById(R.id.next);
        next.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int dlong,mlong;
                dlong = now.getActualMaximum(Calendar.DAY_OF_MONTH);
                mlong = now.getActualMaximum(Calendar.MONTH);

                now.add(Calendar.DAY_OF_MONTH,+1);
                int day = now.get(Calendar.DAY_OF_MONTH);

                int month=now.get(Calendar.MONTH);
                if(day>dlong) {
                    now.add(Calendar.MONTH,+1);
                }

                int year = now.get(Calendar.YEAR);
                if (month>mlong){
                    now.add(Calendar.YEAR,+1);
                }

                date = (day +"-"+(month+1)+"-"+ year);
                thedate.setText(day +"-"+(month+1)+"-"+ year);
                if(thedate.getText().equals(today)){
                    thedate.setText("Today");
                }
                loadData();
            }
        });

        thedate.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int year = now.get(Calendar.YEAR);
                int month = now.get(Calendar.MONTH);
                int day = now.get(Calendar.DAY_OF_MONTH);

                DatePickerDialog mDatePicker = new DatePickerDialog(HomeActivity.this, new DatePickerDialog.OnDateSetListener() {
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                        date = (dayOfMonth +"-"+(month+1)+"-"+ year);
                        thedate.setText(dayOfMonth+"-"+(month+1)+"-"+year);
                        if(thedate.getText().equals(today)){
                            thedate.setText("Today");
                        }
                        now.set(year,month,dayOfMonth);
                        loadData();
                    }
                },year, month, day);
                mDatePicker.show();
            }
        });

        fab = (FloatingActionButton)findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(HomeActivity.this,ReminderActivity.class);
                intent.putExtra("isUpdate","false");
                startActivity(intent);
            }
        });

        listItem = (RecyclerView)findViewById(R.id.Reminder);
        listItem.setHasFixedSize(true);

        layoutManager = new LinearLayoutManager(this);
        listItem.setLayoutManager(layoutManager);

        loadData();

    }

    public void loadData() {
        dialog.show();
        CollectionReference cr = db.collection("Reminder").document(date).collection("remind");

        if(reminderList.size() > 0)
            reminderList.clear();
        cr.get()
                .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
                    @Override
                    public void onComplete(@NonNull Task<QuerySnapshot> task) {
                            for (DocumentSnapshot doc:task.getResult())
                            {
                                 reminder = new Reminder(doc.getString("id"),
                                        doc.getString("Title"),
                                        doc.getString("description"),
                                        doc.getString("date"),
                                        doc.getString("time"),
                                        doc.getString("done"));
                                reminderList.add(reminder);
                            }


                        adapter = new ListItemReminderAdapter(HomeActivity.this, reminderList);
                        listItem.setAdapter(adapter);
                        dialog.dismiss();
                    }
                })
                .addOnFailureListener(new OnFailureListener() {
                    @Override
                    public void onFailure(@NonNull Exception e) {
                        Toast.makeText(HomeActivity.this, ""+e.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                });
    }
}

共有1个答案

丁学
2023-03-14

为了解决这个问题,请更改以下实现:

implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-firestore:11.4.2'
implementation 'com.google.firebase:firebase-auth:16.0.1'
implementation "com.google.android.gms:play-services-base:15.0.1"
implementation "com.google.android.gms:play-services-gcm:15.0.1"

implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-firestore:18.0.0'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation "com.google.android.gms:play-services-base:16.1.0"
implementation "com.google.android.gms:play-services-gcm:16.0.0"

在您的顶层build.gradle文件中,请确保有最新版本的Google服务插件:

classpath 'com.google.gms:google-services:4.2.0'
classpath 'com.android.tools.build:gradle:3.3.0'
 类似资料: