Firebase无法正常运行的应用程序崩溃致命异常:主进程:c.itp.firebasetest,PID:31133

时间:2018-08-03 07:05:00

标签: android firebase

这是我的代码:

尝试清洁和重建。
我在youtube上学习了一个教程,他确实做到了。
但是在第4个视频播放后,我对此感到困惑。

试图寻找解决方案。
他们说检查了你的意图,就很好了。
尝试再次将google-service.json添加到项目中。

MainActivity.java

private FirebaseAuth mAuth;
private EditText loginEmail;
private EditText loginPassword;
private ProgressBar progressBar;

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

    mAuth = FirebaseAuth.getInstance();

    findViewById(R.id.sign_up).setOnClickListener(this);
    findViewById(R.id.login).setOnClickListener(this);
    loginEmail=findViewById(R.id.loginEmail);
    loginPassword=findViewById(R.id.loginPassword);
    progressBar=findViewById(R.id.progress);
}

@Override
public void onClick(View v) {
    switch (v.getId()){
        case R.id.sign_up:
            finish();

            startActivity(new Intent(this,SignUpActivity.class));

            break;
        case R.id.login:
            loginUser();
            break;

    }
}

@Override
protected void onStart() {
    super.onStart();

    if(mAuth.getCurrentUser()!=null){
        finish();
        startActivity(new Intent(MainActivity.this,ProfileActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

    }
}

private void loginUser() {

    String email=loginEmail.getText().toString().trim();
    String password=loginPassword.getText().toString().trim();

    if(email.isEmpty()){
        Toast.makeText(this,"Please Enter your Email",Toast.LENGTH_SHORT).show();
        loginEmail.setError("Please Enter your Email");
        loginEmail.requestFocus();
        return;
    }

    if(!Patterns.EMAIL_ADDRESS.matcher(email).matches()){
        Toast.makeText(this,"Please Enter a valid Email address" ,Toast.LENGTH_SHORT).show();
        loginEmail.setError("Please Enter a valid Email address");
        loginEmail.requestFocus();
        return;
    }

    if(password.isEmpty()){
        Toast.makeText(this,"Please Enter a Password",Toast.LENGTH_SHORT).show();
        loginEmail.setError("Please Enter a Password");
        loginPassword.requestFocus();
        return;
    }

    if(password.length()<6){
        Toast.makeText(this,"Minimum length of password should be 6 ",Toast.LENGTH_SHORT).show();
        loginEmail.setError("Minimum length of password should be 6");
        loginPassword.requestFocus();
        return;
    }
    progressBar.setVisibility(View.VISIBLE);
    mAuth.signInWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
        @Override
        public void onComplete(@NonNull Task<AuthResult> task) {
            progressBar.setVisibility(View.GONE);
            if(task.isSuccessful()){
                finish();
                startActivity(new Intent(MainActivity.this,ProfileActivity.class).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));

            }else{
                Toast.makeText(getApplicationContext(),task.getException().getMessage(),Toast.LENGTH_SHORT).show();
            }
        }
    });

}

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true">

        <EditText
            android:layout_margin="10dp"
            android:inputType="textEmailAddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/loginEmail"
            android:hint="@string/enter_your_email"/>

        <EditText
            android:layout_margin="10dp"
            android:inputType="textPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:id="@+id/loginPassword"
            android:hint="@string/enter_your_password"/>
        <Button
            android:layout_margin="10dp"
            android:id="@+id/login"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="136dp"
            android:text="@string/login" />

        <TextView
            android:id="@+id/sign_up"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:textAlignment="center"
            android:text="@string/don_t_have_account_sign_up_here"/>

    </LinearLayout>

    <ProgressBar
        android:id="@+id/progress"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:visibility="gone"/>


</RelativeLayout>

清单

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="c.itp.firebasetest">

    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".SignUpActivity"
            android:parentActivityName=".MainActivity">
            <!-- The meta-data tag is required if you support API level 15 and lower -->
            <meta-data
                android:name="android.support.PARENT_ACTIVITY"
                android:value=".MainActivity" />
        </activity>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".ProfileActivity"></activity>
    </application>

</manifest>

Gradle:App模块

apply plugin: 'com.android.application'

android {
    compileSdkVersion 26
    defaultConfig {
    applicationId "c.itp.firebasetest"
    minSdkVersion 17
    targetSdkVersion 26
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
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.1.2'

testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

//firebase
implementation 'com.google.firebase:firebase-storage:16.0.1'
implementation 'com.google.firebase:firebase-core:16.0.1'
implementation 'com.google.firebase:firebase-auth:16.0.1'

//GLIDE
implementation 'com.github.bumptech.glide:glide:4.7.1'
annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

}

apply plugin: 'com.google.gms.google-services'

Gradle:project

buildscript {

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


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

allprojects {
repositories {
    google()
    jcenter()
}
}

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

这是日志

08/03 11:39:20: Launching app
$ adb install-multiple -r -t /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_4.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/instant-run-apk/debug/app-debug.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_8.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_2.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_3.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_1.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_0.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_5.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/dep/dependencies.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_9.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_6.apk /Users/imac/Desktop/RAHEEL/Apps/Employs Projects/Mohsin/ud851-Sunshine-student/FireBaseTest/app/build/intermediates/split-apk/debug/slices/slice_7.apk 
Split APKs installed
$ adb shell am start -n "c.itp.firebasetest/c.itp.firebasetest.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Connected to process 31133 on device tcl-8050d-SS6L7PKJEUOFNBGQ
Capturing and displaying logcat messages from application. This behavior can be disabled in the "Logcat output" section of the "Debugger" settings page.
D/ActivityThread: hoder:android.app.IActivityManager$ContentProviderHolder@128544d,provider,holder.Provider:android.content.ContentProviderProxy@8698b02
D/Proxy: setHttpRequestCheckHandler
D/ActivityThread: installProvider: context.getPackageName()=c.itp.firebasetest
V/FA: Registered activity lifecycle callback
D/FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
I/FirebaseInitProvider: FirebaseApp initialization successful
D/ActivityThread: installProvider: context.getPackageName()=c.itp.firebasetest
I/InstantRun: starting instant run server: is main process
D/ActivityThread: BIND_APPLICATION handled : 0 / AppBindData{appInfo=ApplicationInfo{2bd07c7b c.itp.firebasetest}}
V/ActivityThread: Handling launch of ActivityRecord{2fd4aa98 token=android.os.BinderProxy@331722f1 {c.itp.firebasetest/c.itp.firebasetest.MainActivity}}
D/ActivityThread: hoder:android.app.IActivityManager$ContentProviderHolder@4e57ed6,provider,holder.Provider:android.content.ContentProviderProxy@31e06557
V/ActivityThread: ActivityRecord{2fd4aa98 token=android.os.BinderProxy@331722f1 {c.itp.firebasetest/c.itp.firebasetest.MainActivity}}: app=android.app.Application@3092b262, appName=c.itp.firebasetest, pkg=c.itp.firebasetest, comp={c.itp.firebasetest/c.itp.firebasetest.MainActivity}, dir=/data/app/c.itp.firebasetest-1/base.apk
D/FeatureProxyBase: FeatureProxyBase class constructor
D/FeatureProxyBase: getService(), serviceName = multiwindow_service_v1
D/FeatureProxyBase: FeatureProxyBase class constructor
D/FeatureProxyBase: getService(), serviceName = multiwindow_service_v1
D/FeatureProxyBase: FeatureProxyBase class constructor
                    getService(), serviceName = multiwindow_service_v1
W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
V/FA: onActivityCreated
V/FA: Collection enabled
V/FA: App package, google app id: c.itp.firebasetest, 1:815321298873:android:e1b9c7d86cf14b7b
D/AccessibilityManager: setStateLocked: wasEnabled = false, mIsEnabled = false, wasTouchExplorationEnabled = false, mIsTouchExplorationEnabled = false, wasHighTextContrastEnabled = false, mIsHighTextContrastEnabled = false
                        java.lang.Throwable: setStateLocked
                            at android.view.accessibility.AccessibilityManager.setStateLocked(AccessibilityManager.java:553)
                            at android.view.accessibility.AccessibilityManager.tryConnectToServiceLocked(AccessibilityManager.java:636)
                            at android.view.accessibility.AccessibilityManager.<init>(AccessibilityManager.java:226)
                            at android.view.accessibility.AccessibilityManager.getInstance(AccessibilityManager.java:206)
                            at android.view.View.setFlags(View.java:9843)
                            at android.view.ViewGroup.initViewGroup(ViewGroup.java:536)
                            at android.view.ViewGroup.<init>(ViewGroup.java:525)
                            at android.view.ViewGroup.<init>(ViewGroup.java:520)
                            at android.view.ViewGroup.<init>(ViewGroup.java:516)
                            at android.view.ViewGroup.<init>(ViewGroup.java:512)
                            at android.widget.FrameLayout.<init>(FrameLayout.java:119)
                            at com.android.internal.policy.impl.PhoneWindow$DecorView.<init>(PhoneWindow.java:2326)
                            at com.android.internal.policy.impl.PhoneWindow.generateDecor(PhoneWindow.java:3460)
                            at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3846)
                            at com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:2042)
                            at android.support.v7.app.AppCompatDelegateImplV9.createSubDecor(AppCompatDelegateImplV9.java:374)
                            at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:323)
                            at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                            at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                            at c.itp.firebasetest.MainActivity.onCreate(MainActivity.java:28)
                            at android.app.Activity.performCreate(Activity.java:6100)
                            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
                            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
                            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601)
                            at android.app.ActivityThread.access$800(ActivityThread.java:178)
                            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
                            at android.os.Handler.dispatchMessage(Handler.java:111)
                            at android.os.Looper.loop(Looper.java:194)
                            at android.app.ActivityThread.main(ActivityThread.java:5637)
                            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:960)
                            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
I/FA: App measurement is starting up, version: 12780
      To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
I/FA: To enable faster debug mode event logging run:
        adb shell setprop debug.firebase.analytics.app c.itp.firebasetest
D/FA: Debug-level message logging enabled
D/OpenSSLLib: OpensslErr:Module:13(114:155); file:external/openssl/crypto/asn1/asn1_lib.c ;Line:145;Function:ASN1_get_object
V/FA: Connecting to remote service
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: c.itp.firebasetest, PID: 31133
                  java.lang.NoSuchMethodError: No static method getFont(Landroid/content/Context;ILandroid/util/TypedValue;ILandroid/widget/TextView;)Landroid/graphics/Typeface; in class Landroid/support/v4/content/res/ResourcesCompat; or its super classes (declaration of 'android.support.v4.content.res.ResourcesCompat' appears in /data/app/c.itp.firebasetest-1/split_lib_dependencies_apk.apk)
                      at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)
                      at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)
                      at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:110)
                      at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:81)
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:71)
                      at android.support.v7.widget.AppCompatTextView.<init>(AppCompatTextView.java:67)
                      at android.support.v7.widget.Toolbar.setTitle(Toolbar.java:753)
                      at android.support.v7.widget.ToolbarWidgetWrapper.setTitleInt(ToolbarWidgetWrapper.java:261)
                      at android.support.v7.widget.ToolbarWidgetWrapper.setWindowTitle(ToolbarWidgetWrapper.java:243)
                      at android.support.v7.widget.ActionBarOverlayLayout.setWindowTitle(ActionBarOverlayLayout.java:621)
                      at android.support.v7.app.AppCompatDelegateImplV9.onTitleChanged(AppCompatDelegateImplV9.java:631)
                      at android.support.v7.app.AppCompatDelegateImplV9.ensureSubDecor(AppCompatDelegateImplV9.java:328)
                      at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
                      at c.itp.firebasetest.MainActivity.onCreate(MainActivity.java:28)
                      at android.app.Activity.performCreate(Activity.java:6100)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1112)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2468)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2601)
                      at android.app.ActivityThread.access$800(ActivityThread.java:178)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1470)
                      at android.os.Handler.dispatchMessage(Handler.java:111)
                      at android.os.Looper.loop(Looper.java:194)
                      at android.app.ActivityThread.main(ActivityThread.java:5637)
                      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:960)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)
V/FA: Connection attempt already in progress
E/FirebaseInstanceId: Token retrieval failed: SERVICE_NOT_AVAILABLE
Application terminated.

0 个答案:

没有答案