Android 활동으로 인해 앱이 충돌하지만 내가 볼 수있는 한 어느 시점에서도 호출되지 않습니다.

user3932611

OilPlots 클래스에는 Activity BoPlot을로드해야하는 다음 메서드가 있습니다.

OnClickListener OilList = new OnClickListener() {

    public void onClick(View view) {

        Intent intent = new Intent(OilPlots.this, BoPlots.class);
        startActivity(intent);
    }
    };

다음은 BoPlots의 onCreate () 메서드입니다.

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

        setup();        
        color(button4, R.id.buttonLayout ,R.id.button4);

        Button btn = (Button)findViewById(R.id.bo);
        btn.setOnClickListener(BoList);

    }

Activity BoPlots를 처음로드하면 제대로로드되지만 OilPlots 클래스에서 액세스하려고하면 앱이 충돌합니다. logcat은 다음과 같습니다.

08-18 22:06:15.649: E/AndroidRuntime(32339): FATAL EXCEPTION: main
08-18 22:06:15.649: E/AndroidRuntime(32339): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.resengin/com.example.resengin.BoPlots}: java.lang.NullPointerException
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread.access$600(ActivityThread.java:130)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.os.Looper.loop(Looper.java:137)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread.main(ActivityThread.java:4745)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.reflect.Method.invokeNative(Native Method)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.reflect.Method.invoke(Method.java:511)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at dalvik.system.NativeStart.main(Native Method)
08-18 22:06:15.649: E/AndroidRuntime(32339): Caused by: java.lang.NullPointerException
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.StringToReal.parseFloat(StringToReal.java:285)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.Float.parseFloat(Float.java:300)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.Float.valueOf(Float.java:337)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at com.example.resengin.BoResults.onCreate(BoResults.java:74)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at com.example.resengin.BoPlots.onCreate(BoPlots.java:20)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.Activity.performCreate(Activity.java:5008)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079)
08-18 22:06:15.649: E/AndroidRuntime(32339):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
08-18 22:06:15.649: E/AndroidRuntime(32339):    ... 11 more

내가 이해할 수있는 한, 충돌의 원인은 다음과 같습니다.

08-18 22:06:15.649: E/AndroidRuntime(32339): Caused by: java.lang.NullPointerException
08-18 22:06:15.649: E/AndroidRuntime(32339):    at java.lang.StringToReal.parseFloat(StringToReal.java:285)

변수가 인스턴스화되지 않았기 때문에 충돌이 발생합니다. 이것이 참조하는 것으로 보이는 코드 줄은 Activity BoResults에 있습니다. 이 활동에 대한 onCreate 메소드는 다음과 같습니다.

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

        setup();        
        color(button3, R.id.buttonLayout ,R.id.button3);

        txt1=(TextView)findViewById(R.id.results).findViewById(R.id.editText1);
        txt2=(TextView)findViewById(R.id.results).findViewById(R.id.editText2);
        txt3=(TextView)findViewById(R.id.results).findViewById(R.id.editText3);

        Intent intent = getIntent();        

        Float Pressure = Float.valueOf(intent.getStringExtra("V1"));
        Float Temp = Float.valueOf(intent.getStringExtra("V2"));
        Float STOG = Float.valueOf(intent.getStringExtra("V3"));
        Float SG = Float.valueOf(intent.getStringExtra("V4"));
        Float SGOR = Float.valueOf(intent.getStringExtra("V5"));


        txt1.setText(String.valueOf(Pressure));
        txt2.setText(String.valueOf(Temp));
        txt3.setText(String.valueOf(STOG));   

        spreadsheet();

    }

그러나 BoResults Activity의 내용을 참조하거나 메서드를 호출하는 코드에 의미가 없기 때문에 이것이 호출되는 이유를 이해할 수 없습니다. BoPlot은 BoResults를 확장합니다.

Coeffect

그래서 BoPlots는 BoResults를 확장합니까? BoPlots onCreate 메서드에서 BoResults 버전을 호출하는 super.onCreate를 호출합니다. 따라서 BoResults가 필요로하는 BoPlots 인 텐트에 동일한 추가 항목을 추가하지 않으면 충돌이 발생합니다. BoResults를 확장하면 안되는 것 같습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관