首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android中的成功构建仍然在设备上崩溃

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

Stack Overflow用户
提问于 2019-11-26 15:49:26
回答 2查看 34关注 0票数 0

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

会非常感谢一些提示和建设性的软肋!

Main Activity.java

代码语言:javascript
复制
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));
    }
}

activity_main.xml -布局

代码语言:javascript
复制
<?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>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-26 15:58:05

你忘了findViewById button1.So in onCreate方法,在button1.setOnClickListener之前.增加这一行:

代码语言:javascript
复制
button1 = findViewById(R.id.button1);
票数 1
EN

Stack Overflow用户

发布于 2019-11-26 17:07:02

删除您的自定义构造函数。

活动必须有一个非参数构造函数,Android用来创建类,当您定义任何重写时,就不再自动在Java中为您创建无参数构造函数.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59054638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档