Android:ComponentInfo:返回App后的java空指针异常

时间:2013-02-07 01:52:17

标签: android nullpointerexception

我的应用程序没有任何问题,直到关闭我的应用程序并在超过15分钟aprox崩溃后返回,如果我在5分钟后返回我的应用程序似乎都是正确的。我找不到问题请帮忙!!!

logcat的

    02-06 20:39:43.534: E/AndroidRuntime(1851): FATAL EXCEPTION: main
02-06 20:39:43.534: E/AndroidRuntime(1851): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.raigo.itivamin/com.raigo.itivamin.Bartabs}: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.raigo.itivamin/com.raigo.itivamin.ObjetivosActivity}: java.lang.NullPointerException
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.access$600(ActivityThread.java:127)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.os.Handler.dispatchMessage(Handler.java:99)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.os.Looper.loop(Looper.java:210)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.main(ActivityThread.java:4441)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at java.lang.reflect.Method.invokeNative(Native Method)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at java.lang.reflect.Method.invoke(Method.java:511)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at dalvik.system.NativeStart.main(Native Method)
02-06 20:39:43.534: E/AndroidRuntime(1851): Caused by: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.raigo.itivamin/com.raigo.itivamin.ObjetivosActivity}: java.lang.NullPointerException
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1967)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.startActivityNow(ActivityThread.java:1808)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.LocalActivityManager.moveToState(LocalActivityManager.java:135)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.LocalActivityManager.startActivity(LocalActivityManager.java:347)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.widget.TabHost$IntentContentStrategy.getContentView(TabHost.java:737)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.widget.TabHost.setCurrentTab(TabHost.java:401)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.widget.TabHost.addTab(TabHost.java:240)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.raigo.itivamin.Bartabs.addTab(Bartabs.java:65)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.raigo.itivamin.Bartabs.setTabs(Bartabs.java:37)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.raigo.itivamin.Bartabs.onCreate(Bartabs.java:29)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.Activity.performCreate(Activity.java:4465)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
02-06 20:39:43.534: E/AndroidRuntime(1851):     ... 11 more
02-06 20:39:43.534: E/AndroidRuntime(1851): Caused by: java.lang.NullPointerException
02-06 20:39:43.534: E/AndroidRuntime(1851):     at com.raigo.itivamin.ObjetivosActivity.onCreate(ObjetivosActivity.java:25)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.Activity.performCreate(Activity.java:4465)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
02-06 20:39:43.534: E/AndroidRuntime(1851):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1931)
02-06 20:39:43.534: E/AndroidRuntime(1851):     ... 23 more

的AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.raigo.itivamin"
    android:versionCode="10"
    android:versionName="1.1" >

    <uses-sdk
        android:minSdkVersion="11"
        android:targetSdkVersion="17" />

    <application  android:name="com.raigo.itivamin.iTIVAapp"
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/app_theme" >
        <activity
            android:name=".IngresodatosActivity"
            android:label="@string/app_name" >
                    <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity android:name="Bartabs" android:configChanges="orientation|screenSize"></activity>
        <activity android:name=".ObjetivosActivity" android:configChanges="orientation|screenSize"></activity>  
        <activity android:name=".BombaActivity" android:configChanges="orientation|screenSize"></activity>
        <activity android:name=".OpioideActivity"
            android:theme="@android:style/Theme.Dialog"></activity>    
        <activity android:name=".HipnoticoActivity"
             android:theme="@android:style/Theme.Dialog"></activity>   
        <activity android:name="org.achartengine.GraphicalActivity" />   
        <activity android:name=".GraficaActivity" android:configChanges="orientation|screenSize"></activity>
        <activity android:name=".SimuladorActivity" android:configChanges="orientation|screenSize"></activity>
        <activity android:name=".AyudaActivity" android:configChanges="orientation|screenSize"></activity>

        <service android:name=".SomeService1"></service>
    </application>

</manifest>

Bartabs.java

package com.raigo.itivamin;

import android.app.TabActivity;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.ImageView;
import android.widget.TabHost;
import android.widget.TextView;


/**
 * @author Adil Soomro
 *
 */
@SuppressWarnings("deprecation")
public class Bartabs extends TabActivity  {
    /** Called when the activity is first created. */
//boolean simulador =false;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        setContentView(R.layout.main);
        //Bundle extras = getIntent().getExtras();
        //simulador= extras.getBoolean("simulador");
        setTabs() ;

    }

    private void setTabs()
    {

    if (((iTIVAapp)getApplication()).simulador==false){         
        addTab(getString(R.string.target), R.drawable.tab_objetivos, ObjetivosActivity.class);
        addTab(getString(R.string.pump), R.drawable.tab_bomba, BombaActivity.class);
        addTab2(getString(R.string.pk_pd), R.drawable.tab_chart,GraficaActivity.class);
        addTab(getString(R.string.help), R.drawable.tab_help, AyudaActivity.class);
    } else{
        addTab(getString(R.string.scheme), R.drawable.tab_bomba, SimuladorActivity.class);
        addTab2(getString(R.string.pk_pd), R.drawable.tab_chart,GraficaActivity.class);
        addTab(getString(R.string.help), R.drawable.tab_help, AyudaActivity.class);
    }

    }

    private void addTab(String labelId, int drawableId, Class<?> c)
    {
        TabHost tabHost = getTabHost();
        Intent intent = new Intent(this, c);
        TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

        View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
        TextView title = (TextView) tabIndicator.findViewById(R.id.title);

        title.setText(labelId);
                ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
        icon.setImageResource(drawableId);

        spec.setIndicator(tabIndicator);
        spec.setContent(intent);

        tabHost.addTab(spec);
        //tabHost.setOnTabChangedListener(this);

    }

    private void addTab2(String labelId, int drawableId, Class<?> c)
    {
        TabHost tabHost = getTabHost();
        Intent intent = new Intent(this, c).addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        TabHost.TabSpec spec = tabHost.newTabSpec("tab" + labelId); 

        View tabIndicator = LayoutInflater.from(this).inflate(R.layout.tab_indicator, getTabWidget(), false);
        TextView title = (TextView) tabIndicator.findViewById(R.id.title);

        title.setText(labelId);
                ImageView icon = (ImageView) tabIndicator.findViewById(R.id.icon);
        icon.setImageResource(drawableId);

        spec.setIndicator(tabIndicator);
        spec.setContent(intent);

        tabHost.addTab(spec);
        //tabHost.setOnTabChangedListener(this);
    }


    //@Override
    //public void onTabChanged(String tabId) {

    //  if (tabId.equals("tabPK/PD")==true && (((iTIVAapp)getApplication()).cambio==true)){ 
    //    LocalActivityManager manager = getLocalActivityManager();
    //    manager.destroyActivity("tabPK/PD", true);
    //   manager.startActivity("tabPK/PD", new Intent(this, GraficaActivity.class));
    //  }
    //}


}

ObjetivosActivity.java

package com.raigo.itivamin;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.pm.ActivityInfo;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.NumberPicker;
import android.widget.NumberPicker.OnValueChangeListener;
import android.widget.Toast;

public class ObjetivosActivity extends Activity implements OnValueChangeListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);

        this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        if (((iTIVAapp)getApplication()).modelo2.equals("halogenado")==false){
        setContentView(R.layout.objetivospage_sep);
        }
        else    
        {
        setContentView(R.layout.objetivospage_bal);
        }                   

        //valores por defecto
        ((iTIVAapp)getApplication()).Tinduccion=5;     
        ((iTIVAapp)getApplication()).tcx=180;
        ((iTIVAapp)getApplication()).objetivo="efecto";
        //((iTIVAapp)getApplication()).deltainfusion=15;
        ((iTIVAapp)getApplication()).cambio=true;

        final Button btn_opt = (Button)findViewById(R.id.button_optimizar);

        if (((iTIVAapp)getApplication()).mezclado==true){
             btn_opt.setVisibility(View.VISIBLE);

        } else if (((iTIVAapp)getApplication()).modelo2.equals("halogenado")==false) {
             btn_opt.setVisibility(View.GONE);
        }

        /////////
        final Button btn_ind = (Button)findViewById(R.id.button_induccion);
         btn_ind.setText((int)((iTIVAapp)getApplication()).Tinduccion+" "+getString(R.string._min));
        //se crean los objetivos del farmaco 1

         final NumberPicker np_ini1 = (NumberPicker) findViewById(R.id.numberPicker_ini1);
         final NumberPicker np_man1 = (NumberPicker) findViewById(R.id.numberPicker_man1);
         final NumberPicker np_sal1 = (NumberPicker) findViewById(R.id.numberPicker_sal1);

        String[] nums = new String[120];

        for(int i=1; i<nums.length+1; i++)
           nums[i-1] = Double.toString(i/10.0);

        np_ini1.setMaxValue(nums.length-1);
        np_ini1.setMinValue(0);
        np_ini1.setDisplayedValues(nums);
        np_ini1.setValue((int) (((iTIVAapp)getApplication()).ini1*10-1));
        np_ini1.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_ini1.setOnValueChangedListener(this);

        np_man1.setMaxValue(nums.length-1);
        np_man1.setMinValue(0);
        np_man1.setDisplayedValues(nums);
        np_man1.setValue((int) (((iTIVAapp)getApplication()).man1*10-1));
        np_man1.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_man1.setOnValueChangedListener(this);

        np_sal1.setMaxValue(nums.length-1);
        np_sal1.setMinValue(0);
        np_sal1.setDisplayedValues(nums);
        np_sal1.setValue((int) (((iTIVAapp)getApplication()).sal1*10-1));
        np_sal1.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_sal1.setOnValueChangedListener(this);

        if (((iTIVAapp)getApplication()).modelo2.equals("schnider") && ((iTIVAapp)getApplication()).mezclado==false){
        //se crean los objetivos del farmaco 2

            final NumberPicker np_ini2 = (NumberPicker) findViewById(R.id.numberPicker_ini2);
            final NumberPicker np_man2 = (NumberPicker) findViewById(R.id.numberPicker_man2);
            final NumberPicker np_sal2 = (NumberPicker) findViewById(R.id.numberPicker_sal2);

        String[] nums2 = new String[80];

        for(int i=1; i<nums2.length+1; i++)
           nums2[i-1] = Double.toString(i/10.0);

        np_ini2.setMaxValue(nums2.length-1);
        np_ini2.setMinValue(0);
        np_ini2.setDisplayedValues(nums2);
        np_ini2.setValue((int) (((iTIVAapp)getApplication()).ini2*10-1));
        np_ini2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_ini2.setOnValueChangedListener(this);

        np_man2.setMaxValue(nums2.length-1);
        np_man2.setMinValue(0);
        np_man2.setDisplayedValues(nums2);
        np_man2.setValue((int) (((iTIVAapp)getApplication()).man2*10-1));
        np_man2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_man2.setOnValueChangedListener(this);

        np_sal2.setMaxValue(nums2.length-1);
        np_sal2.setMinValue(0);
        np_sal2.setDisplayedValues(nums2);
        np_sal2.setValue((int) (((iTIVAapp)getApplication()).sal2*10-1));
        np_sal2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
        np_sal2.setOnValueChangedListener(this);
        }
        else if (((iTIVAapp)getApplication()).mezclado==true){
             //se crean los objetivos del farmaco 2

            final NumberPicker np_ini2 = (NumberPicker) findViewById(R.id.numberPicker_ini2);
            final NumberPicker np_man2 = (NumberPicker) findViewById(R.id.numberPicker_man2);
            final NumberPicker np_sal2 = (NumberPicker) findViewById(R.id.numberPicker_sal2);

            String[] nums2 = new String[81];

            for(int i=1; i<nums2.length; i++)
               nums2[i-1] = Double.toString(i/10.0);

            nums2[80] = "-";

            np_ini2.setMaxValue(nums2.length-1);
            np_ini2.setMinValue(0);
            np_ini2.setDisplayedValues(nums2);
            np_ini2.setValue(80);
            np_ini2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
            np_ini2.setOnValueChangedListener(this);

            np_man2.setMaxValue(nums2.length-1);
            np_man2.setMinValue(0);
            np_man2.setDisplayedValues(nums2);
            np_man2.setValue(80);
            np_man2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
            np_man2.setOnValueChangedListener(this);

            np_sal2.setMaxValue(nums2.length-1);
            np_sal2.setMinValue(0);
            np_sal2.setDisplayedValues(nums2);
            np_sal2.setValue(80);
            np_sal2.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
            np_sal2.setOnValueChangedListener(this);    
        }
        else if (((iTIVAapp)getApplication()).modelo2.equals("halogenado")){
            NumberPicker np_mac = (NumberPicker) findViewById(R.id.numberPicker_mac);
            String[] nums2 = new String[30];

            for(int i=1; i<nums2.length+1; i++)
               nums2[i-1] = Double.toString(i/10.0);

            np_mac.setMaxValue(nums2.length-1);
            np_mac.setMinValue(0);
            np_mac.setDisplayedValues(nums2);
            np_mac.setValue(0);
            np_mac.setDescendantFocusability(NumberPicker.FOCUS_BLOCK_DESCENDANTS);
            np_mac.setOnValueChangedListener(this);
        }


    }



    @Override
    protected void onResume() {
            super.onResume();

            NumberPicker np_ini1 = (NumberPicker) findViewById(R.id.numberPicker_ini1);
            NumberPicker np_man1 = (NumberPicker) findViewById(R.id.numberPicker_man1);
            NumberPicker np_sal1 = (NumberPicker) findViewById(R.id.numberPicker_sal1);


            np_ini1.setValue((int) (((iTIVAapp)getApplication()).ini1*10-1));
            np_man1.setValue((int) (((iTIVAapp)getApplication()).man1*10-1));
            np_sal1.setValue((int) (((iTIVAapp)getApplication()).sal1*10-1));


            if (((iTIVAapp)getApplication()).modelo2.equals("halogenado")==false){
                NumberPicker np_ini2 = (NumberPicker) findViewById(R.id.numberPicker_ini2);
                NumberPicker np_man2 = (NumberPicker) findViewById(R.id.numberPicker_man2);
                NumberPicker np_sal2 = (NumberPicker) findViewById(R.id.numberPicker_sal2);

                np_ini2.setValue((int) (((iTIVAapp)getApplication()).ini2*10-1));
                np_man2.setValue((int) (((iTIVAapp)getApplication()).man2*10-1));
                np_sal2.setValue((int) (((iTIVAapp)getApplication()).sal2*10-1));

                if (((iTIVAapp)getApplication()).mezclado==true){

                    if (((iTIVAapp)getApplication()).ini2==0 && ((iTIVAapp)getApplication()).man2==0){
                        np_ini2.setValue(80);
                        np_man2.setValue(80);   
                    } else {
                    np_ini2.setValue((int) (((iTIVAapp)getApplication()).ini2*10-1));
                    np_man2.setValue((int) (((iTIVAapp)getApplication()).man2*10-1));
                    }

                    np_sal2.setValue(80);
                }

            }

    }

.....

1 个答案:

答案 0 :(得分:1)

Caused by: java.lang.NullPointerException
     at com.raigo.itivamin.ObjetivosActivity.onCreate(ObjetivosActivity.java:25)

错误似乎指向这一行:

if (((iTIVAapp)getApplication()).modelo2.equals("halogenado")==false){

因此(iTIVAapp)getApplication()为空或.modelo2为空。您可以使用调试器或LogCat语句测试哪个值为null。

如果modelo2可能为空,也可能不为空,您可以向后写下您的条件:

if(!"halogenado".equals(((iTIVAapp)getApplication()).modelo2)){ 
    // "!" means "!= true" which must mean "false" for a boolean