java - 在我的项目中实施县代码选择器时出错
问题描述
您好,我是 java 初学者,我正在尝试为学校项目创建国家代码选择器。我已经创建了它添加了代码,但是当我运行应用程序时,它以启动画面开始,然后崩溃。我已经尝试了几乎所有方法,但仍然无法正常工作。我做错了什么,我应该怎么做
这是我的代码。
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());
}
}
这是电话号码活动的 XML,用户将在其中添加他们的电话号码并选择他们的国家代码。
<?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>
这是运行应用程序后发生的错误。
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
"
解决方案
推荐阅读
- java - 无法解析以下属性:复合键中属性的实体
- operating-system - 《操作系统概念》:忙等待不是用信号量消除的吗?
- ios - Expo / React-Native,有没有办法在设备/模拟器上测试运行独立的 iOS 应用程序?
- c# - 如何添加查询 LINQ 以从表中获取结果?
- api - GPS 不准确导致 Google 距离矩阵 API 返回错误的旅行持续时间
- javascript - 随着窗口大小的改变,缩放全屏画布以适应内容
- parceljs - 如何在 parceljs 中使用 env 构建
- python - 将python字节列表转换为字典
- java - 等到布尔值更改而不阻塞JavaFX主线程?
- javascript - 动态添加日期选择器