2017-04-15 14 views
3

私は2つの波でアクセスできるアプリケーションを作成します:FirebaseUI AuthとFirebase SDK認証(これはかなり間違っています。 。。ここではAndroid:NoSuchMethodError:いいえstaticメソッドzzy(Ljava/lang/Object;

public class MainActivity extends AppCompatActivity 
{ 
DialogProgress dialogProgress; 
EditText editEmail; 
EditText editPassword; 
String email; 
String password; 
FirebaseAuth firebaseAuth; 
final int REQUEST_CODE_GOOGLE = 100; 
static Activity activity; 

@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    activity = this; 
    editEmail = (EditText) findViewById(R.id.editEmailA); 
    editPassword = (EditText) findViewById(R.id.editPasswordA); 
    firebaseAuth = FirebaseAuth.getInstance(); 

    if(firebaseAuth.getCurrentUser()!=null) 
    { 
     Toast.makeText(getApplicationContext(), "Bentornato " + firebaseAuth.getCurrentUser().getEmail().toString(), Toast.LENGTH_SHORT).show(); 
     Intent intent = new Intent(MainActivity.this,ProfileActivity.class); 
     startActivity(intent); 
     finish(); 
    } 

    findViewById(R.id.accediButton).setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      email = editEmail.getText().toString(); 
      password = editPassword.getText().toString(); 

      if(TextUtils.isEmpty(email)) 
      { 
       Toast.makeText(getApplicationContext(),"Email vuota",Toast.LENGTH_SHORT).show(); 
      } 

      if(TextUtils.isEmpty(password)) 
      { 
       Toast.makeText(getApplicationContext(),"Password vuota",Toast.LENGTH_SHORT).show(); 
      } 

      if(!(TextUtils.isEmpty(email)||TextUtils.isEmpty(password))) 
      { 
       DialogProgress.setLayout(0); 
       dialogProgress = new DialogProgress(); 
       dialogProgress.setCancelable(false); 
       dialogProgress.show(getSupportFragmentManager().beginTransaction(),"Dialog"); 

       firebaseAuth.signInWithEmailAndPassword(email, password).addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() { 
        @Override 
        public void onComplete(@NonNull Task<AuthResult> task) 
        { 
         if (task.isSuccessful()) 
         { 
          dialogProgress.dismiss(); 
          Toast.makeText(getApplicationContext(), "Bentornato " + firebaseAuth.getCurrentUser().getEmail().toString(), Toast.LENGTH_SHORT).show(); 
          Intent intent = new Intent(MainActivity.this,ProfileActivity.class); 
          startActivity(intent); 
          finish(); 
         } 
         else 
         { 
          dialogProgress.dismiss(); 
          Toast.makeText(getApplicationContext(), "Login fallito " + task.getException().toString(), Toast.LENGTH_LONG).show(); 
         } 
        } 
       }); 
      } 
     } 
    }); 

    findViewById(R.id.registratiText).setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      Intent intent = new Intent(MainActivity.this,RegistrazioneActivity.class); 
      startActivity(intent); 
     } 
    }); 

    findViewById(R.id.accediGoogle).setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      AuthUI authUi = AuthUI.getInstance(); 
      Intent intent = authUi.createSignInIntentBuilder().build(); 
      startActivityForResult(intent,REQUEST_CODE_GOOGLE); 
     } 
    }); 

} 

@Override 
public void onActivityResult(int codice, int risultato, Intent data) 
{ 
    super.onActivityResult(codice, risultato, data); 
    if(codice==REQUEST_CODE_GOOGLE && risultato==RESULT_OK && data!=null) 
    { 
     IdpResponse idpResponse = IdpResponse.fromResultIntent(data); 
     Toast.makeText(getApplicationContext(),idpResponse + "",Toast.LENGTH_LONG).show(); 
    } 
} 
} 

は私です:テスト)まあ、私はGoogleのアクセスを追加するとき、私は、SDK認証でアクセスすることができないアプリが常にクラッシュここで が私のコードである理由私にはわからないからgradleプロジェクト:

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

allprojects 
{ 
    repositories 
    { 
    jcenter() 
    maven { url 'https://maven.fabric.io/public' } 
    } 
} 

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

ここは私のグラデルアプリです:

apply plugin: 'com.android.application' 

android 
{ 
compileSdkVersion 25 
buildToolsVersion "25.0.2" 
    defaultConfig 
    { 
    applicationId "com.example.utente.myfirebase" 
    minSdkVersion 16 
    targetSdkVersion 25 
    versionCode 1 
    versionName "1.0" 
    testInstrumentationRunner 
    "android.support.test.runner.AndroidJUnitRunner" 
    } 
buildTypes 
{ 
    release 
    { 
    minifyEnabled false 
    proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard- 
    rules.pro' 
    } 
} 
} 

dependencies 
{ 
compile fileTree(dir: 'libs', include: ['*.jar']) 
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{ 
    exclude group: 'com.android.support', module: 'support-annotations' 
}) 
compile 'com.android.support:appcompat-v7:25.1.0' 
compile 'com.google.firebase:firebase-auth:9.4.0' 
compile 'com.google.firebase:firebase-database:9.4.0' 
compile 'com.google.firebase:firebase-storage:9.4.0' 
compile 'com.firebaseui:firebase-ui-auth:1.2.0' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
testCompile 'junit:junit:4.12' 

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

ログイン:

04-15 21:34:06.318 26912-26912/com.example.utente.myfirebase A/FirebaseApp: Firebase API initialization failure. 
                     java.lang.reflect.InvocationTargetException 
                      at java.lang.reflect.Method.invoke(Native Method) 
                      at java.lang.reflect.Method.invoke(Method.java:372) 
                      at com.google.firebase.FirebaseApp.zza(Unknown Source) 
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source) 
                      at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source) 
                      at android.content.ContentProvider.attachInfo(ContentProvider.java:1737) 
                      at android.content.ContentProvider.attachInfo(ContentProvider.java:1712) 
                      at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source) 
                      at android.app.ActivityThread.installProvider(ActivityThread.java:5437) 
                      at android.app.ActivityThread.installContentProviders(ActivityThread.java:5032) 
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4972) 
                      at android.app.ActivityThread.access$1600(ActivityThread.java:177) 
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491) 
                      at android.os.Handler.dispatchMessage(Handler.java:102) 
                      at android.os.Looper.loop(Looper.java:135) 
                      at android.app.ActivityThread.main(ActivityThread.java:5910) 
                      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:1405) 
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
                     Caused by: java.lang.NoSuchMethodError: No static method zzy(Ljava/lang/Object;)Ljava/lang/Object; in class Lcom/google/android/gms/common/internal/zzab; or its super classes (declaration of 'com.google.android.gms.common.internal.zzab' appears in /data/app/com.example.utente.myfirebase-2/split_lib_dependencies_apk.apk:classes33.dex) 
                      at com.google.android.gms.measurement.internal.zzx.zzdo(Unknown Source) 
                      at com.google.android.gms.measurement.AppMeasurement.getInstance(Unknown Source) 
                      at java.lang.reflect.Method.invoke(Native Method)  
                      at java.lang.reflect.Method.invoke(Method.java:372)  
                      at com.google.firebase.FirebaseApp.zza(Unknown Source)  
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  
                      at com.google.firebase.FirebaseApp.initializeApp(Unknown Source)  
                      at com.google.firebase.provider.FirebaseInitProvider.onCreate(Unknown Source)  
                      at android.content.ContentProvider.attachInfo(ContentProvider.java:1737)  
                      at android.content.ContentProvider.attachInfo(ContentProvider.java:1712)  
                      at com.google.firebase.provider.FirebaseInitProvider.attachInfo(Unknown Source)  
                      at android.app.ActivityThread.installProvider(ActivityThread.java:5437)  
                      at android.app.ActivityThread.installContentProviders(ActivityThread.java:5032)  
                      at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4972)  
                      at android.app.ActivityThread.access$1600(ActivityThread.java:177)  
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1491)  
                      at android.os.Handler.dispatchMessage(Handler.java:102)  
                      at android.os.Looper.loop(Looper.java:135)  
                      at android.app.ActivityThread.main(ActivityThread.java:5910)  
                      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:1405)  
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)  
+0

[Googleプレイサービス8.4.0にアップグレードした後、起動時にアプリがクラッシュする](http://stackoverflow.com/questions/34478757/after-upgrading-to-google-play-services-8-4) -0-my-app-crashes-on-startup) –

+0

スタックトレースを投稿できますか? –

+0

@ Code-Apprenticeでも非常に異なる – Curio

答えて

6

あなたはFirebase APIライブラリとFirebase UIの互換性のあるバージョンを使用する必要があります。互換性のあるバージョンの表はFirebase UI documentationです。 com.google.firebase:firebase-*ライブラリの9.4.0を10.2.0に変更します。

compile 'com.android.support:appcompat-v7:25.1.0' 
compile 'com.google.firebase:firebase-auth:10.2.0' 
compile 'com.google.firebase:firebase-database:10.2.0' 
compile 'com.google.firebase:firebase-storage:10.2.0' 
compile 'com.firebaseui:firebase-ui-auth:1.2.0' 
compile 'com.android.support.constraint:constraint-layout:1.0.2' 
testCompile 'junit:junit:4.12' 
6

変更この:これに

compile 'com.google.firebase:firebase-auth:9.4.0' compile 'com.google.firebase:firebase-database:9.4.0' compile 'com.google.firebase:firebase-storage:9.4.0'

compile 'com.google.firebase:firebase-auth:10.2.0' compile 'com.google.firebase:firebase-database:10.2.0' compile 'com.google.firebase:firebase-storage:10.2.0'

あなたが古いバージョンを使用している、Firebaseをアップグレードする必要があります。 Firebaseにはバージョン10.2.1が用意されていますが、FirebaseUiによると、Firebaseのバージョンは現在10.2.0までサポートされていますので、10.2.0を使用してください。

関連する問題