में बुलाया जाने के बावजूद प्रारंभ नहीं हो रहा है, मैं एक एंड्रॉइड एप्लिकेशन बना रहा हूं और मैं वर्तमान में फ़ायरबेस का उपयोग कर उपयोगकर्ता प्रमाणीकरण को लागू करने की कोशिश कर रहा हूं। जहां तक मैं कह सकता हूं, मेरा ऐप मेरे फायरबेस सर्वर से जुड़ा हुआ है।FirebaseApp FirebaseApp.initializeApp() को एप्लिकेशन क्लास
मुझे एक बटन प्रेस के माध्यम से साइनइन गतिविधि में साइनइन गतिविधि से स्विच करने का प्रयास करते समय रनटाइम त्रुटि का सामना करना पड़ता है। ऐप क्रैश हो जाता है और मुझे रनटाइम त्रुटि मिलती है।
जहां तक मैं बता सकता हूँ, रनटाइम त्रुटि जब मैं FirebaseAuth.getInstance()
के साथ एक FirebaseAuth
वस्तु को प्रारंभ करने का प्रयास पंजीकरण गतिविधि के onCreate()
कॉल से है। इस कॉल की वजह से
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process seniordesign.phoneafriend. Make sure to call FirebaseApp.initializeApp(Context).
विफल रहता है फिर भी, मैं अपने आवेदन वर्ग 'onCreate()
विधि है जो मैंने सोचा था कि ठीक होगा में यह कॉल करने के। मैंने initalizeApp()
को साइनअप के onCreate()
कॉल पर कॉल किया लेकिन कोई पासा नहीं जोड़ा। मैंने इस मुद्दे के साथ दूसरों की तलाश की है लेकिन मुझे कुछ भी समान नहीं मिला है। किसी भी मदद के लिए धन्यवाद।
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="seniordesign.phoneafriend">
<uses-permission android:name="android.permission.INTERNET" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme"
android:name="seniordesign.phoneafriend.PhoneAFriend">
<activity android:name=".SignIn">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".SignUp"></activity>
</application>
</manifest>
PhoneAFriend.java (मेरे आवेदन वर्ग)
public class PhoneAFriend extends Application {
public void onCreate(){
super.onCreate();
Firebase.setAndroidContext(this);
FirebaseApp.initializeApp(this);
}
}
SignUp.java
public class SignUp extends AppCompatActivity {
protected Firebase ref;
protected EditText emailText;
protected EditText passText;
protected EditText confirmText;
protected Button button;
protected SignUp thisContext;
protected FirebaseAuth auth;
protected FirebaseAuth.AuthStateListener authListener;
private View.OnClickListener onClickListener;
public static Intent intent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
ref = new Firebase("https://phoneafriend-7fb6b.firebaseio.com");
emailText = (EditText) findViewById(R.id.signup_emailText);
passText = (EditText) findViewById(R.id.signup_passwordText);
confirmText = (EditText) findViewById(R.id.signup_passwordConfirm);
intent = new Intent(this, SignIn.class);
//Tried this already
//FirebaseApp.initializeApp(this);
auth = FirebaseAuth.getInstance();
button = (Button) findViewById(R.id.signup_button);
onClickListener = new View.OnClickListener() {
@Override
public void onClick(View view) {
createUser(view);
Log.v("SignUp Button" , "Clicked; Attempting to create user");
}
};
button.setOnClickListener(onClickListener);
authListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null) {
// User is signed in
Log.d("FirebaseAuth", "onAuthStateChanged:signed_in:" + user.getUid());
} else {
// User is signed out
Log.d("FirebaseAuth", "onAuthStateChanged:signed_out");
}
// ...
}
};
thisContext = this;
}
@Override
public void onStart(){
super.onStart();
//auth.addAuthStateListener(authListener);
}
@Override
public void onStop(){
super.onStop();
if(authListener != null) {
//auth.removeAuthStateListener(authListener);
}
}
protected void createUser(View view){
String cString = null;
String pString = null;
String eString = emailText.getText().toString();
if(passText.getText() != null && confirmText.getText() != null) {
pString = passText.getText().toString();
cString = confirmText.getText().toString();
Log.v("SignUP: Pass Null check" , "Pass");
if (emailText.getText() != null && pString.equals(cString) && passText.getText() != null) {
Log.v("SignUP: Sign up check " , "Pass");
auth.createUserWithEmailAndPassword(emailText.getText().toString() , passText.getText().toString())
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
Log.v("createUser complete" , "status: " + task.isSuccessful());
if(task.isSuccessful()){
startActivity(SignUp.intent);
}
}
});
}
}
return;
}
}
आप विरासत 2.x.x से एपीआई कॉल मिश्रण कर रहे हैं। नए 9.x.x एसडीके के साथ एसडीके, वे संगत नहीं हैं। आपको केवल नए एसडीके का उपयोग करना चाहिए। इस संबंधित उत्तर को देखें: http://stackoverflow.com/a/39321686/4815718 –