Android应用程序在Pie上出现Textview错误,但在Oreo上运行良好

Android应用程序在Pie上出现Textview错误,但在Oreo上运行良好,android,textview,Android,Textview,我的应用程序在Oreo上运行良好,但在Android Pie上的某个特定Textview上出现空指针异常,为了找到问题,我尝试对问题Textview进行注释,但它在下一个文本视图上开始出现相同的错误,尽管上面也有Textview,不会引发任何错误。我只是不知道问题出在哪里,如果有问题,每个设备都会崩溃。也许我需要更改manifest或app.gradle文件中的某些内容,以便在更高的api级别上运行它?如果有任何帮助,我将不胜感激,因为下周我将有我的FYP:( 请发布onClick()的完整代码

我的应用程序在Oreo上运行良好,但在Android Pie上的某个特定Textview上出现空指针异常,为了找到问题,我尝试对问题Textview进行注释,但它在下一个文本视图上开始出现相同的错误,尽管上面也有Textview,不会引发任何错误。我只是不知道问题出在哪里,如果有问题,每个设备都会崩溃。也许我需要更改manifest或app.gradle文件中的某些内容,以便在更高的api级别上运行它?如果有任何帮助,我将不胜感激,因为下周我将有我的FYP:(


请发布
onClick()的完整代码
方法,或者至少向我们展示如何设置
result2
。错误消息说
result2
是null@AlexanderDadukin我在Oreo和Pie上用相同的输入并排比较了它,一个运行正常,另一个崩溃。如果您没有将dialog2转换为TextView,请尝试将mydialog.findViewById(R.id.bmr)更改为(TextView)mydialog.findViewById(R.id.bmr)。你能发布你的resultpopup布局吗?@DavidWasser整个方法大约有700行,所以我包含了重要的部分,可能是因为此活动中的方法调用了一个我已格式化为自定义对话框的布局,尽管它在结果2之前设置了上述文本框中的文本,但没有任何错误。请发布
onClick()
方法,或者至少向我们展示如何设置
result2
。错误消息说
result2
是null@AlexanderDadukin我在Oreo和Pie上用相同的输入并排比较了它,一个运行良好,另一个崩溃。如果您没有将dialog2转换为文本视图,请尝试更改mydialog.findViewById(R.id.bmr)至(文本视图)mydialog.findViewById(R.id.bmr)。你能发布你的resultpopup布局吗?@DavidWasser整个方法大约有700行,所以我包含了重要的部分,可能是因为此活动中的方法调用了一个布局,我已将其格式化为自定义对话框,尽管它在结果2之前设置了上述文本框中的文本,但没有任何错误。
 @SuppressLint({"WrongViewCast", "SetTextI18n"})
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
public void Showpopup(View v) {


    final Spinner activity;
    RadioButton radiomal, radiofemal;
    EditText feet, inch, weiht, age;
    final TextView textview,save, fulname, result1, result2, result3, result4, com, carbs, protien, fat, water;


    mydialog.setContentView(R.layout.resultpopup);
    textview = mydialog.findViewById(R.id.close);
    activity = (Spinner) findViewById(R.id.spinner1);
    save = mydialog.findViewById(R.id.save);
    fulname = (TextView) mydialog.findViewById(R.id.fullname);
    radiomal = findViewById(R.id.radiomal);
    radiofemal = (RadioButton) findViewById(R.id.radiofemal);
    feet = (EditText) findViewById(R.id.feet);
    age = (EditText) findViewById(R.id.age);
    inch = (EditText) findViewById(R.id.inches);
    com = (TextView) mydialog.findViewById(R.id.comment);
    weiht = (EditText) findViewById(R.id.weight);
    gen = (TextView) mydialog.findViewById(R.id.gen);
    result1 = (TextView) mydialog.findViewById(R.id.bmi);
    result2 =  mydialog.findViewById(R.id.bmr);
    result3 = (TextView) mydialog.findViewById(R.id.healthy);
    result4 = (TextView) mydialog.findViewById(R.id.calorie);
    carbs = (TextView) mydialog.findViewById(R.id.carbs);
    protien = (TextView) mydialog.findViewById(R.id.protien);
    fat = (TextView) mydialog.findViewById(R.id.fat);
    water = (TextView) mydialog.findViewById(R.id.water);

    DecimalFormat precision = new DecimalFormat("0.00");

    String f = feet.getText().toString();
    String i = inch.getText().toString();
    String w = weiht.getText().toString();
    String a = age.getText().toString();


    if (TextUtils.isEmpty(f)) {
        Toast.makeText(caloriecalc2.this, " Enter full Height", Toast.LENGTH_SHORT).show();
        return;
    }
    if (TextUtils.isEmpty(i)) {
        Toast.makeText(caloriecalc2.this, " Enter full Height", Toast.LENGTH_SHORT).show();
        return;
    }
    if (TextUtils.isEmpty(w)) {
        Toast.makeText(caloriecalc2.this, " Please Enter Weight", Toast.LENGTH_SHORT).show();
        return;
    }
    if (TextUtils.isEmpty(a)) {
        Toast.makeText(caloriecalc2.this, " Please enter Age", Toast.LENGTH_SHORT).show();
        return;
    }
    if (radiomal.isChecked() || radiofemal.isChecked()) {//No Radio Button Is Checked


        int ft = Integer.parseInt(f);
        int in = Integer.parseInt(i);
        int ag = Integer.parseInt(a);

        float h = (float) (((ft * 12) + in) * 2.54);
        if (f != null && !"".equals(f) && i != null && !"".equals(i) && w != null && !"".equals(w)) {
            float wf = Float.parseFloat(w);
            float bmi = (wf / (h * h)) * 10000;
            result1.setText(precision.format(bmi));


            if (bmi < 18.5) {
                com.setText("You are Underweight");
            } else if (bmi >= 18.5 && bmi <= 24.9) {
                com.setText("You have a Healthy Weight");
            } else if (bmi >= 25) {
                com.setText("You are Overweight");
            }

        }
        if (f != null && !"".equals(f) && i != null && !"".equals(i)) {
            if (radiomal.isChecked()) {
                float hea = (float) (56.2 + (in * 1.41));
                result3.setText(precision.format(hea));
            } else if (radiofemal.isChecked()) {
                float hea = (float) (53.1 + (in * 1.36));
                result3.setText(precision.format(hea));
            }

        }
        if (a != null && !"".equals(a) && i != null && !"".equals(i) && f != null && !"".equals(f) && w != null && !"".equals(w)) {
            float wf = Float.parseFloat(w);
            float bmi = (wf / (h * h)) * 10000;
            if (radiomal.isChecked()) {

                float cal = (float) ((float) 88.36 + (13.39 * wf) + (4.799 * h) - (5.677 * ag));
                result4.setText(precision.format(cal));

                if (arr == 0) {
                    cal = (float) ((float) 88.36 + (13.39 * wf) + (4.799 * h) - (5.677 * ag));
                    result2.setText(precision.format(cal));


                    if (bmi < 18.5) {
                        float car = (float) (cal * 0.45);
                        carbs.setText((precision.format(car)));
                        float pro = (float) (cal * 0.35);
                        protien.setText(precision.format(pro));
                        float fa = (float) (cal * 0.20);
                        fat.setText(precision.format(fa));
                    } else if (bmi >= 18.5 && bmi <= 24.9) {
                        float car = (float) (cal * 0.50);
                        carbs.setText((precision.format(car)));
                        float pro = (float) (cal * 0.25);
                        protien.setText(precision.format(pro));
                        float fa = (float) (cal * 0.25);
                        fat.setText(precision.format(fa));

                    } else if (bmi >= 25) {
                        float car = (float) (cal * 0.35);
                        carbs.setText((precision.format(car)));
                        float pro = (float) (cal * 0.40);
                        protien.setText(precision.format(pro));
                        float fa = (float) (cal * 0.25);
                        fat.setText(precision.format(fa));

                    }

                } else if (arr == 1) {
                    cal = (float) (((float) 88.36 + (13.39 * wf) + (4.799 * h) - (5.677 * ag)) * 1.2);
                    result2.setText(precision.format(cal));
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/layout_bg"
android:padding="5dp"
android:outlineAmbientShadowColor="#F4C599"
android:outlineSpotShadowColor="@color/colorAccent"
android:scrollbars="vertical"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:orientation="vertical"
android:layout_gravity="center"
>
<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">

<TextView
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:id="@+id/close"
    android:textColor="#F47507"
    android:text="X"
    android:textSize="20dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="5dp"
    android:layout_alignParentRight="true"
    android:textStyle="bold"
    android:fontFamily="@font/poppins"
    android:layout_gravity="end"
    android:gravity="center"
    android:background="@drawable/circlebackground"
   />
 <TextView
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:id="@+id/save"
    android:textColor="#F47507"
    android:layout_marginTop="5dp"
    android:textSize="20dp"
    android:layout_marginLeft="7dp"
    android:layout_marginRight="10dp"
    android:layout_alignParentLeft="true"
    android:textStyle="bold"
    android:fontFamily="@font/poppins"
    android:gravity="center"
    android:backgroundTint="@color/colorAccent"
    android:background="@drawable/ic_baseline_save_24"
    />
 </RelativeLayout>

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="5dp"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/profile"
        android:layout_width="369dp"
        android:layout_height="134dp"
        android:layout_gravity="center"
        android:layout_marginTop="15dp"
    />

    <TextView
        android:id="@+id/fullname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_marginTop="5dp"
        android:fontFamily="@font/poppins"
        android:text="Name"
        android:textColor="#FA7C11"
        android:textSize="20sp"
        android:textStyle="bold" />


</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="8dp"
    android:orientation="horizontal">
<LinearLayout
android:layout_weight="1"
android:layout_width="0dp"
android:gravity="center"
android:background="#F45A67"
android:layout_height="100dp"
android:orientation="vertical">

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="BMI"
    android:textSize="18sp"
    android:textColor="#fff"
    />
<TextView
    android:id="@+id/bmi"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Null"
    android:textSize="18sp"
    android:textColor="#fff"
    />


 </LinearLayout>
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="0dp"
        android:gravity="center"
        android:background="#6CA0F8"
        android:layout_height="100dp"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="BMR"
            android:textSize="18sp"
            android:textColor="#fff"
            />
        <TextView
            android:id="@+id/bmr"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Null"
            android:textSize="18sp"
            android:textColor="#fff"
            />


    </LinearLayout>
    <LinearLayout
        android:layout_weight="1"
        android:layout_width="0dp"
        android:gravity="center"
        android:background="#0AC1EF"
        android:layout_height="100dp"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Water (ltr)"
            android:textSize="18sp"
            android:textColor="#fff"
            />
        <TextView
            android:id="@+id/water"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Null"
            android:textSize="18sp"
            android:textColor="#fff"
            />


    </LinearLayout>





</LinearLayout>




    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="15dp"
        android:orientation="horizontal">

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"
            android:background="#29AE05"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Healthy Weight"
                android:textColor="#fff"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/healthy"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Null"
                android:textColor="#fff"
                android:textSize="18sp" />


        </LinearLayout>

        <LinearLayout
            android:layout_width="0dp"
            android:layout_height="100dp"
            android:layout_weight="1"
            android:background="#FA8B35"
            android:gravity="center"
            android:orientation="vertical">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Calorie Intake"
                android:textColor="#fff"
                android:textSize="18sp" />

            <TextView
                android:id="@+id/calorie"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Null"
                android:textColor="#fff"
                android:textSize="18sp" />


        </LinearLayout>

  </LinearLayout>
   <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Macro's Breakdown"
    android:textAlignment="center"
    android:layout_marginTop="10dp"
    android:textSize="20sp"
    android:textStyle="bold"
    android:textColor="#F87302"
    android:fontFamily="@font/poppins"/>


  <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="90dp"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="#474745"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Protien"
            android:textColor="#fff"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/protien"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Null"
            android:textColor="#fff"
            android:textSize="18sp" />


    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="#052AAE"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Carbohydrate"
            android:textColor="#fff"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/carbs"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Null"
            android:textColor="#fff"
            android:textSize="18sp" />


    </LinearLayout>
    <LinearLayout
        android:layout_width="0dp"
        android:layout_height="100dp"
        android:layout_weight="1"
        android:background="#ED0858"
        android:gravity="center"
        android:orientation="vertical">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Fat"
            android:textColor="#fff"
            android:textSize="18sp" />

        <TextView
            android:id="@+id/fat"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Null"
            android:textColor="#fff"
            android:textSize="18sp" />


    </LinearLayout>





</LinearLayout>



<TextView
    android:id="@+id/comment"
    android:layout_width="match_parent"
    android:layout_height="37dp"
    android:fontFamily="@font/poppins"
    android:layout_marginTop="30dp"
    android:gravity="center"
    android:text="You are Healthy Weight"
    android:textColor="#FA7C11"
    android:textSize="22sp"
    android:textStyle="bold" />
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.login, PID: 7007
java.lang.IllegalStateException: Could not execute method for android:onClick
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:414)
    at android.view.View.performClick(View.java:6597)
    at android.view.View.performClickInternal(View.java:6574)
    at android.view.View.access$3100(View.java:778)
    at android.view.View$PerformClick.run(View.java:25885)
    at android.os.Handler.handleCallback(Handler.java:873)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:193)
    at android.app.ActivityThread.main(ActivityThread.java:6669)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
 Caused by: java.lang.reflect.InvocationTargetException
    at java.lang.reflect.Method.invoke(Native Method)
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409)
    at android.view.View.performClick(View.java:6597) 
    at android.view.View.performClickInternal(View.java:6574) 
    at android.view.View.access$3100(View.java:778) 
    at android.view.View$PerformClick.run(View.java:25885) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) 
 Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference
    at com.example.login.caloriecalc2.Showpopup(caloriecalc2.java:235)
    at java.lang.reflect.Method.invoke(Native Method) 
    at androidx.appcompat.app.AppCompatViewInflater$DeclaredOnClickListener.onClick(AppCompatViewInflater.java:409) 
    at android.view.View.performClick(View.java:6597) 
    at android.view.View.performClickInternal(View.java:6574) 
    at android.view.View.access$3100(View.java:778) 
    at android.view.View$PerformClick.run(View.java:25885) 
    at android.os.Handler.handleCallback(Handler.java:873) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:193) 
    at android.app.ActivityThread.main(ActivityThread.java:6669) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)