wake-up-neo.net

"Provider com.google.firebase.provider.FirebaseInitProvider kann nicht abgerufen werden" Fehlerpfad Android

Ich habe eine Anwendung, die mit Firebase verbunden ist. Das Problem ist, wenn die App in einem Gerät installiert wird (das auf mehreren Geräten funktioniert). Ich lese viele Foren und niemand arbeitet. Ich lese here und this . und so weiter. Danke !!

Der Fehler ist hier.

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.dev.ptruck, PID: 8833
              Java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: Java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[Zip file "/data/app/com.dev.ptruck-17.apk"],nativeLibraryDirectories=[/data/app-lib/com.dev.ptruck-17, /vendor/lib, /system/lib]]
                  at Android.app.ActivityThread.installProvider(ActivityThread.Java:5196)
                  at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4788)
                  at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4728)
                  at Android.app.ActivityThread.access$1500(ActivityThread.Java:166)
                  at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1343)
                  at Android.os.Handler.dispatchMessage(Handler.Java:102)
                  at Android.os.Looper.loop(Looper.Java:136)
                  at Android.app.ActivityThread.main(ActivityThread.Java:5584)
                  at Java.lang.reflect.Method.invokeNative(Native Method)
                  at Java.lang.reflect.Method.invoke(Method.Java:515)
                  at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268)
                  at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084)
                  at dalvik.system.NativeStart.main(Native Method)
               Caused by: Java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.provider.FirebaseInitProvider" on path: DexPathList[[Zip file "/data/app/com.dev.ptruck-17.apk"],nativeLibraryDirectories=[/data/app-lib/com.dev.ptruck-17, /vendor/lib, /system/lib]]
                  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
                  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:497)
                  at Java.lang.ClassLoader.loadClass(ClassLoader.Java:457)
                  at Android.app.ActivityThread.installProvider(ActivityThread.Java:5181)
                  at Android.app.ActivityThread.installContentProviders(ActivityThread.Java:4788) 
                  at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4728) 
                  at Android.app.ActivityThread.access$1500(ActivityThread.Java:166) 
                  at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1343) 
                  at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                  at Android.os.Looper.loop(Looper.Java:136) 
                  at Android.app.ActivityThread.main(ActivityThread.Java:5584) 
                  at Java.lang.reflect.Method.invokeNative(Native Method) 
                  at Java.lang.reflect.Method.invoke(Method.Java:515) 
                  at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:1268) 
                  at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:1084) 
                  at dalvik.system.NativeStart.main(Native Method) 

Hier ist die Startklasse

public class StartActivity extends Activity {
private static final String FIREBASE_URL = "https://database.firebaseio.com/";
private Firebase myFirebaseRef = null;
View rootView;
String uid;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_start);

    Firebase.setAndroidContext(this);
    final ProgressBar p = (ProgressBar) findViewById(R.id.start_progress_bar);

}
private void checkUserLogin() {
                    myFirebaseRef.addAuthStateListener(new Firebase.AuthStateListener() {
                        @Override
                        public void onAuthStateChanged(AuthData authData) {
                            if (authData != null) {

                                System.out.println(myFirebaseRef.getKey());
                                Intent toMainActivity = new Intent(getApplicationContext(), MenuActivity.class);
                                uid = myFirebaseRef.getAuth().getUid();
                                toMainActivity.putExtra("user_id", uid);
                                finish();
                                startActivity(toMainActivity);

                            } else if (authData == null) {

                                Intent toMainActivity = new Intent(getApplicationContext(), LoginActivity.class);
                                startActivity(toMainActivity);
                                // user is not logged in
                            }
                        }
                    });
}
private Runnable task = new Runnable() {
    public void run() {

        checkUserLogin();
    }
};
@Override
protected void onStart() {
    super.onStart();
    if(myFirebaseRef == null) {
        myFirebaseRef = new Firebase(FIREBASE_URL);
    }
    Handler handler = new Handler();
    handler.postDelayed(task, 3000);

}
@Override
protected void onDestroy() {
    super.onDestroy();

    unbindDrawables(rootView);
    rootView = null;
    System.gc();

}
protected void unbindDrawables(View view) {
    if (view != null) {
        if (view.getBackground() != null) {
            view.getBackground().setCallback(null);
        }
        if (view instanceof ViewGroup && !(view instanceof AdapterView)) {
            for (int i = 0; i < ((ViewGroup) view).getChildCount(); i++) {
                unbindDrawables(((ViewGroup) view).getChildAt(i));
            }
            ((ViewGroup) view).removeAllViews();
        }

    }

}

}

26
azsoftco

Ich habe auch das gleiche Problem mit Firebase gehabt, wenn die Anwendung unter API 19 (<4.4.2) -Geräten ausgeführt wurde, und zwar aufgrund eines Fehlers von Multidex. Dann unten Lösung Arbeit für mich: 

Im App-Modul build.gradle

Android {
   ...
   defaultConfig {
       multiDexEnabled true
       ...
   }
}

dependencies {
  // add dependency 
  compile 'com.Android.support:multidex:1.0.1'
}

// ADD THIS AT THE BOTTOM
apply plugin: 'com.google.gms.google-services'

aktualisierungsname in AndroidManifest.xml

<application
    Android:allowBackup="true"
    Android:icon="@mipmap/ic_launcher"
    Android:label="@string/app_name"
    Android:supportsRtl="true"
    Android:name=".MyApplication"
    Android:theme="@style/AppTheme">

     // ...
</application>

Erstellen Sie eine MyApplication.Java-Datei

public class MyApplication extends Application {

    @Override
    protected void attachBaseContext(Context base) {
       super.attachBaseContext(base);
       MultiDex.install(this);
    }

}
64
Garg's

In Android Studio versuchen Sie Folgendes:

  1. "Instant Run" deaktivieren
  2. Das sollte funktionieren
  3. disable "Instant Run"

This should work

22
Antonio

Fügen Sie einfach unten in Ihrer Projektdatei AndroidManifest.xml-Datei Zeilen ein, , Wenn diese nicht in application tag liegen

<meta-data
        Android:name="com.google.Android.gms.version"
        Android:value="@integer/google_play_services_version" />
1

Ich habe das gleiche Problem. Ich habe die App vom Gerät/Emulator deinstalliert und dann erneut installiert (von Android Studio aus, Ausführen).

0
Lee

Die Deaktivierung des Sofortlaufs hat das Problem für mich behoben.

Android Studio -> Einstellungen -> Erstellen, Ausführen, Bereitstellen -> Instant Run

- Deaktivieren Sie das Kontrollkästchen neben "Instant Run aktivieren".

-OK klicken

0
Chris M

Wenn Sie kürzlich die Firebase-Abhängigkeitsversion in Gradle geändert haben, müssen Sie möglicherweise auch die neueste Version von Google Repository im Android SDK-Manager aktualisieren.

Wenn Sie das Google Repository zu diesem Zeitpunkt nicht aktualisieren können, ändern Sie die Gradle-Abhängigkeitsversion zurück in eine niedrigere Version.

0
sats