2014-04-15 22 views
0

解決!我使用三種不同的手機和平板電腦佈局,我忘記了更改平板電腦的佈局! TextView不存在! TNX的幫助!(求助)無法恢復活動僅在nexus 7 4.4.2

我的應用程序出現了一個奇怪的問題!它可以在所有設備上完美運行(avd 2.3.3,avd 4.4.2,avd 4.1.2 ecc ..)和真實設備,如Android 4.1 Android 2.3.3 - 2.3.7 Android 4.0.3 - 4.0.4 Android 4.2 Android 4.3的Android 4.4系統的Android 2.2的Android 3.2的Android 2.1的Android 3.1但它給我下面的錯誤只在谷歌Nexus 7 4.4.2

04-15 15:50:16.676: E/AndroidRuntime(24520): FATAL EXCEPTION: main 
04-15 15:50:16.676: E/AndroidRuntime(24520): Process: dado.auto3gdataswitch, PID: 24520 
04-15 15:50:16.676: E/AndroidRuntime(24520): java.lang.RuntimeException: Unable to resume activity {dado.auto3gdataswitch/dado.auto3gdataswitch.MainActivity}: java.lang.NullPointerException 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2788) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2817) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2250) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.access$800(ActivityThread.java:135) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.os.Handler.dispatchMessage(Handler.java:102) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.os.Looper.loop(Looper.java:136) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.main(ActivityThread.java:5017) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at java.lang.reflect.Method.invokeNative(Native Method) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at java.lang.reflect.Method.invoke(Method.java:515) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at dalvik.system.NativeStart.main(Native Method) 
04-15 15:50:16.676: E/AndroidRuntime(24520): Caused by: java.lang.NullPointerException 
04-15 15:50:16.676: E/AndroidRuntime(24520): at dado.auto3gdataswitch.MainActivity.onResume(MainActivity.java:112) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1192) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.Activity.performResume(Activity.java:5310) 
04-15 15:50:16.676: E/AndroidRuntime(24520): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2778) 
04-15 15:50:16.676: E/AndroidRuntime(24520): ... 12 more 

我的活動:

import android.app.Activity; 
import android.content.ComponentName; 
import android.content.Context; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.content.pm.PackageManager; 
import android.net.ConnectivityManager; 
import android.net.wifi.WifiManager; 
import android.os.Bundle; 
import android.preference.PreferenceManager; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

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

    final PackageManager pm = getPackageManager(); 
    final ComponentName compName = new  ComponentName(getApplicationContext(),NetworkReceiver.class); 
    final Button button = (Button) findViewById(R.id.button1); 
    final ConnectivityManager conman =  (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    final WifiManager wifiManager = (WifiManager)  this.getSystemService(Context.WIFI_SERVICE); 
    int isEnabled = pm.getComponentEnabledSetting(compName); 


    if (isEnabled == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { 
     Toast.makeText(MainActivity.this, R.string.broadcastStop,  Toast.LENGTH_SHORT).show(); 
     button.setText(R.string.btEnable); 
    } 
    else { 

     wifiManager.setWifiEnabled(true); 
     Intent i = new Intent(getBaseContext(), MainService.class); 
     startService(i); 
     Toast.makeText(MainActivity.this, R.string.broadcastRun, Toast.LENGTH_SHORT).show(); 
     button.setText(R.string.btDisable); 
    } 

    button.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      int isEnabled = pm.getComponentEnabledSetting(compName); 
      if (isEnabled == PackageManager.COMPONENT_ENABLED_STATE_DISABLED) { 

       wifiManager.setWifiEnabled(true); 
       Intent i = new Intent(getBaseContext(), MainService.class); 
       startService(i); 
       pm.setComponentEnabledSetting(compName,PackageManager.COMPONENT_ENABLED_STATE_ENABLED,PackageManager.DONT_KILL_APP); 
       Toast.makeText(MainActivity.this, R.string.broadcastRun, Toast.LENGTH_SHORT).show(); 
       button.setText(R.string.btDisable); 
      } 
      else { 

       pm.setComponentEnabledSetting(compName,PackageManager.COMPONENT_ENABLED_STATE_DISABLED,PackageManager.DONT_KILL_APP); 
       Toast.makeText(MainActivity.this, R.string.broadcastStop, Toast.LENGTH_SHORT).show(); 
       button.setText(R.string.btEnable); 
      } 
     } 
    }); 

    } 

@Override 
protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 

    final TextView vibration = (TextView) findViewById(R.id.getVibro); 
    final TextView sound = (TextView) findViewById(R.id.getSound); 

    SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 

    if (prefs.getBoolean(PreferencesActivity.SOUND, false)) { 
     sound.setText(getString(R.string.soundOn)); 
    } 
    else { 
     sound.setText("BLABLA");<<ERROR HERE 
    } 
    if (prefs.getBoolean(PreferencesActivity.VIBRO, false)) { 
     vibration.setText(getString(R.string.vibroOn)); 
    } 
    else { 
     vibration.setText(getString(R.string.vibroOff)); 
    } 
} 
+0

你行號有一個NullPointerException在MainActivity.java後113. –

+0

只需嘗試不加修飾符即可,例如'TextView sound =(TextView)findViewById(R.id.getSound);'。同時檢查帶有'getSound'的textview是否在'main.xml'中。 –

+0

把它放在試試看,你會得到錯誤的原因 –

回答

0

這一行:

sound.setText(R.string.soundOff); 

應該是:

sound.setText(getString(R.string.soundOff)); 

編輯:下同幾行。你能看到的空指針在logcat的情況,請轉到該行,看看可能是錯的有

編輯2:這行告訴你在哪裏問題是:

Caused by: java.lang.NullPointerException 
    at dado.auto3gdataswitch.MainActivity.onResume(MainActivity.java:113) 
+0

更正所有行,但我在同一行中有相同的錯誤!在setText行有 – TecnoHelp83

+0

?粘貼更新的代碼的外觀以及nullpointers發生的位置 –

+0

已編輯!當我雙擊紅線零點,其中錯誤在這裏! – TecnoHelp83

0

剛剛嘗試沒有修改最終即

TextView sound = (TextView) findViewById(R.id.getSound)

同時檢查ID爲getSound的textview是否在main.xml

如果錯誤仍然存​​在,請執行下列操作變化 - -

取下onResume()以下行,並把它們onCreate()setContentView(R.layout.main);

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    final TextView vibration = (TextView) findViewById(R.id.getVibro); 
    final TextView sound = (TextView) findViewById(R.id.getSound); 
    //Rest of the code 
}