Hello im kind of a beginner in java and im trying to create a country code picker for a school project. i already created it added the code but when i run the app it starts with a splash screen then crashes. I've tried almost everything but it still wont work. What am i doing wrong and what should i do
Here my code.
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.content.Intent;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.FirebaseException;
import com.google.firebase.FirebaseTooManyRequestsException;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseAuthInvalidCredentialsException;
import com.google.firebase.auth.FirebaseUser;
import com.google.firebase.auth.PhoneAuthCredential;
import com.google.firebase.auth.PhoneAuthProvider;
import com.hbb20.CountryCodePicker;
import java.util.concurrent.TimeUnit;
public class PhoneNumber extends AppCompatActivity {
private static final String TAG = "PhoneAuth";
public EditText phonenumber;
public Button nextButton;
public FirebaseAuth fbAuth;
private String phoneVerificationId;
private PhoneAuthProvider.OnVerificationStateChangedCallbacks verificationCallbacks;
private PhoneAuthProvider.ForceResendingToken resendToken;
CountryCodePicker ccp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_phone_number);
//Country Code Picker
ccp = findViewById(R.id.countrycodepicker);
ccp.registerCarrierNumberEditText(phonenumber);
//Define Views Here
nextButton = findViewById(R.id.nextButton);
phonenumber = findViewById(R.id.editTextPhonenumber);
// Filter number of digits entered by the User
InputFilter[] filters = new InputFilter[1];
filters[0] = new InputFilter.LengthFilter(10); //Filter to 10 characters
phonenumber.setFilters(filters);
fbAuth = FirebaseAuth.getInstance();
//Next Button On click Litsener.
nextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
attemptLogin();
}
});
}
public void attemptLogin(){
// set Errors
phonenumber.setError(null);
//get Phone number
ccp.registerCarrierNumberEditText(phonenumber);
Log.i ("Phone Number", ccp.getFullNumber());
}
}
Here is the XML for the phone number Activity where a user will add their phone number and choose their country code.
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PhoneNumber">
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline39"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline40"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline41"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="1" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.15" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.85" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline33"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.4" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline34"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.5" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline35"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.6" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline36"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_end="233dp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline37"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_end="146dp" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline38"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="1" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/guideline42"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
app:layout_constraintGuide_begin="20dp"
app:layout_constraintGuide_percent="0.35" />
<ImageView
android:id="@+id/imageView"
android:layout_width="542dp"
android:layout_height="366dp"
app:layout_constraintBottom_toTopOf="@+id/guideline33"
app:layout_constraintEnd_toStartOf="@+id/guideline41"
app:layout_constraintStart_toStartOf="@+id/guideline40"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/top2" />
<ImageView
android:id="@+id/imageView7"
android:layout_width="137dp"
android:layout_height="179dp"
app:layout_constraintBottom_toTopOf="@+id/guideline33"
app:layout_constraintEnd_toStartOf="@+id/guideline32"
app:layout_constraintHorizontal_bias="0.496"
app:layout_constraintStart_toStartOf="@+id/guideline31"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.298"
app:srcCompat="@drawable/ghc_logo_white" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:text="VERIFY PHONE NUMBER"
android:textColor="#000"
android:textSize="18sp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline34"
app:layout_constraintEnd_toStartOf="@+id/guideline32"
app:layout_constraintStart_toStartOf="@+id/guideline31"
app:layout_constraintTop_toTopOf="@+id/guideline33" />
<com.hbb20.CountryCodePicker
android:id="@+id/countrycodepicker"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toTopOf="@+id/guideline35"
app:layout_constraintEnd_toStartOf="@+id/editTextPhonenumber"
app:layout_constraintHorizontal_bias="0.833"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline34"
app:layout_constraintVertical_bias="0.28"
/>
<EditText
android:id="@+id/editTextPhonenumber"
android:layout_width="184dp"
android:layout_height="44dp"
android:ems="10"
android:inputType="phone"
app:layout_constraintBottom_toTopOf="@+id/guideline35"
app:layout_constraintEnd_toStartOf="@+id/guideline41"
app:layout_constraintHorizontal_bias="0.493"
app:layout_constraintStart_toStartOf="@+id/guideline42"
app:layout_constraintTop_toTopOf="@+id/guideline34"
app:layout_constraintVertical_bias="0.241" />
<TextView
android:id="@+id/textView5"
android:layout_width="276dp"
android:layout_height="40dp"
android:fontFamily="sans-serif"
android:text="By clicking next you allow us to send verification number Charges may apply"
android:textColor="#000"
android:textStyle="italic"
app:layout_constraintBottom_toTopOf="@+id/guideline36"
app:layout_constraintEnd_toStartOf="@+id/guideline41"
app:layout_constraintHorizontal_bias="0.688"
app:layout_constraintStart_toStartOf="@+id/guideline40"
app:layout_constraintTop_toTopOf="@+id/guideline35"
app:layout_constraintVertical_bias="0.1" />
<Button
android:id="@+id/nextButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NEXT"
android:textColor="#fff"
android:textSize="18sp"
android:background="@drawable/round"
android:onClick="sendCode"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline37"
app:layout_constraintEnd_toStartOf="@+id/guideline32"
app:layout_constraintStart_toStartOf="@+id/guideline31"
app:layout_constraintTop_toTopOf="@+id/guideline36" />
</androidx.constraintlayout.widget.ConstraintLayout>
Here's the error that occurred after running the app.
2019-12-23 09:35:49.168 25311-25311/com.tibacare.tibahc E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tibacare.tibahc, PID: 25311
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tibacare.tibahc/com.tibacare.tibahc.PhoneNumber}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.EditText.getHint()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2995)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3073)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1774)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:198)
at android.app.ActivityThread.main(ActivityThread.java:7055)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.CharSequence android.widget.EditText.getHint()' on a null object reference
at com.hbb20.CountryCodePicker.setEditText_registeredCarrierNumber(CountryCodePicker.java:1130)
at com.hbb20.CountryCodePicker.registerCarrierNumberEditText(CountryCodePicker.java:1738)
at com.tibacare.tibahc.PhoneNumber.onCreate(PhoneNumber.java:55)
at android.app.Activity.performCreate(Activity.java:7314)
at android.app.Activity.performCreate(Activity.java:7305)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2948)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3073)
at android.app.ActivityThread.-wrap11(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1774)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:198)
at android.app.ActivityThread.main(ActivityThread.java:7055)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:523)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:836)
2019-12-23 09:35:49.205 25311-25311/com.tibacare.tibahc I/Process: Sending signal. PID: 25311 SIG: 9
"