Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Studio中的成功构建仍然会在设备上崩溃_Android_Android Studio_Crash - Fatal编程技术网

Android Studio中的成功构建仍然会在设备上崩溃

Android Studio中的成功构建仍然会在设备上崩溃,android,android-studio,crash,Android,Android Studio,Crash,我基本上还是个初学者,我试着制作一个应用程序来简化我在实验室的工作。这只是一些基本的计算。我想制作一个与大多数设备兼容的应用程序,以防它包含有用的信息。尽管这个应用程序似乎构建成功,但一旦在我的设备上启动,它就会立即崩溃。下面列出了使用的文件。我尝试了Android Studio给我的所有提示,但没有结果。应用程序仍然崩溃 非常感谢您的提示和建设性反馈 Main Activity.java package com.e.concalc; import androidx.appcompat.ap

我基本上还是个初学者,我试着制作一个应用程序来简化我在实验室的工作。这只是一些基本的计算。我想制作一个与大多数设备兼容的应用程序,以防它包含有用的信息。尽管这个应用程序似乎构建成功,但一旦在我的设备上启动,它就会立即崩溃。下面列出了使用的文件。我尝试了Android Studio给我的所有提示,但没有结果。应用程序仍然崩溃

非常感谢您的提示和建设性反馈


Main Activity.java

package com.e.concalc;

import androidx.appcompat.app.AppCompatActivity; 
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {


private EditText protein_sp;
private EditText salt_sp;
private EditText protein_st;
private EditText salt_st;
private EditText volume_sp;

private TextView tv_resultH2O;
private TextView tv_resultSalt;
private TextView tv_resultProtein;

private Button button1;

public MainActivity(TextView tv_resultH2O, TextView tv_resultSalt, TextView tv_resultProtein, Button button1) {
    this.tv_resultH2O = tv_resultH2O;
    this.tv_resultSalt = tv_resultSalt;
    this.tv_resultProtein = tv_resultProtein;
    this.button1 = button1;
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    protein_sp = findViewById(R.id.edit1);
    protein_st = findViewById(R.id.edit2);
    salt_sp = findViewById(R.id.edit3);
    salt_st = findViewById(R.id.edit4);
    volume_sp = findViewById(R.id.edit5);



    button1.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v) {
            makeCalculations();
        }
    });
}


private void makeCalculations() {
    double p_sp = Double.valueOf(protein_sp.getText().toString());
    double p_st = Double.valueOf(protein_st.getText().toString());
    double s_sp = Double.valueOf(salt_sp.getText().toString());
    double s_st = Double.valueOf(salt_st.getText().toString());
    double v_sp = Double.valueOf(volume_sp.getText().toString());

    double resultH2O;
    double resultSalt;
    double resultProtein;

    resultProtein = p_sp * v_sp / p_st;
    resultSalt = s_sp * v_sp / s_st;
    resultH2O = v_sp - resultProtein - resultSalt;



    tv_resultH2O.setText(Double.toString(resultH2O));
    tv_resultSalt.setText(Double.toString(resultSalt));
    tv_resultProtein.setText(Double.toString(resultProtein));
    }
}

活动\u main.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"
android:orientation="vertical"
tools:context=".MainActivity">



<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Protein1"
    android:textSize="20sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintHorizontal_bias="0.133"
    app:layout_constraintVertical_bias="0.070" />

<TextView
    android:id="@+id/text2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Protein2"
    android:textSize="20sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.77"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.070" />


<TextView
    android:id="@+id/text4"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Salt1"
    android:textSize="20sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="@+id/text2"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.21" />

<TextView
    android:id="@+id/text3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/Salt2"
    android:textSize="20sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="@+id/text1"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.21" />

<TextView
    android:id="@+id/text5"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/SampleVolume"
    android:textSize="20sp"
    android:textStyle="bold"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintStart_toStartOf="@+id/text3"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintVertical_bias="0.35" />


<EditText
    android:id="@+id/edit1"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:textSize="15sp"
    android:inputType="number"
    android:hint="@string/hint"
    app:layout_constraintStart_toStartOf="@+id/text1"
    app:layout_constraintTop_toBottomOf="@+id/text1"
    android:importantForAutofill="no" />

<EditText
    android:id="@id/edit2"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:textSize="15sp"
    android:inputType="number"
    android:hint="@string/hint"
    app:layout_constraintStart_toStartOf="@+id/text2"
    app:layout_constraintTop_toBottomOf="@+id/text2"
    android:importantForAutofill="no" />

<EditText
    android:id="@id/edit4"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:textSize="15sp"
    android:inputType="number"
    android:hint="@string/hint"
    app:layout_constraintStart_toStartOf="@+id/text4"
    app:layout_constraintTop_toBottomOf="@+id/text4"
    android:importantForAutofill="no" />

<EditText
    android:id="@id/edit3"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:textSize="15sp"
    android:inputType="number"
    android:hint="@string/hint"
    app:layout_constraintStart_toStartOf="@+id/text3"
    app:layout_constraintTop_toBottomOf="@+id/text3"
    android:importantForAutofill="no" />

<EditText
    android:id="@+id/edit5"
    android:layout_width="100dp"
    android:layout_height="40dp"
    android:textSize="15sp"
    android:inputType="number"
    android:hint="@string/hint"
    app:layout_constraintStart_toStartOf="@+id/text5"
    app:layout_constraintTop_toBottomOf="@+id/text5"
    android:importantForAutofill="no" />

<Button
    android:id="@+id/button1"
    android:layout_width="120dp"
    android:layout_height="40dp"
    android:layout_marginBottom="128dp"
    android:text="@string/button1"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.158"
    app:layout_constraintStart_toStartOf="parent" />


<Button
    android:id="@+id/button2"
    android:layout_width="120dp"
    android:layout_height="40dp"
    android:layout_marginStart="51dp"
    android:layout_marginLeft="51dp"
    android:text="@string/button2"
    app:layout_constraintBottom_toBottomOf="@+id/button1"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.745"
    app:layout_constraintStart_toEndOf="@+id/button1"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="@+id/button1" />


<TextView
    android:id="@+id/tv_resultH2O"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_centerInParent="true"

    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintHorizontal_bias="0.1"
    app:layout_constraintVertical_bias="0.6"/>


<TextView
    android:id="@+id/tv_resultSalt"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_centerInParent="true"
    android:textAppearance="?android:attr/textAppearanceLarge"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintHorizontal_bias="0.5"
    app:layout_constraintVertical_bias="0.6"/>

<TextView
    android:id="@+id/tv_resultProtein"
    android:layout_width="100dp"
    android:layout_height="50dp"
    android:layout_centerInParent="true"
    android:textAppearance="?android:attr/textAppearanceLarge"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent"
    app:layout_constraintHorizontal_bias="0.9"
    app:layout_constraintVertical_bias="0.6"/>
</androidx.constraintlayout.widget.ConstraintLayout>

您忘记了查找视图ID按钮1。因此在
onCreate
方法中,在
按钮1.setOnClickListener
之前。。。。添加此行:

button1 = findViewById(R.id.button1);

您忘记了查找视图ID按钮1。因此在
onCreate
方法中,在
button1.setOnClickListener
之前。。。。添加此行:

button1 = findViewById(R.id.button1);

删除自定义构造函数


活动必须具有Android用于创建类的无参数构造函数,当您定义任何重写时,无参数构造函数将不再在Java中自动为您创建…

删除自定义构造函数


活动必须具有Android用于创建类的无参数构造函数,当您定义任何重写时,无参数构造函数将不再在Java中自动为您创建…

如果您在Java中使用其他视图,请对其执行相同操作,而不仅仅是编辑文本。非常感谢!这真的解决了我的问题!如果您在java中使用其他视图,请对它们执行相同的操作,而不仅仅是编辑文本。非常感谢!这真的解决了我的问题!您在哪里初始化MainActivity的构造函数。Android不像任何UI元素那样工作,比如你的文本视图需要由findViewById初始化(它需要存在于你在setContentView中指定的布局中)@peco说了同样的话,这很有帮助。谢谢您在哪里初始化MainActivity的构造函数。Android不像任何UI元素那样工作,比如你的文本视图需要由findViewById初始化(它需要存在于你在setContentView中指定的布局中)@peco说了同样的话,这很有帮助。谢谢谢谢,在我删除自定义构造函数后,它仍然崩溃。我认为你的回答仍然对我的问题有帮助。非常感谢。谢谢,在我删除自定义构造函数后,它仍然崩溃。我认为你的回答仍然对我的问题有帮助。非常感谢。