2014-06-16 123 views
0

由於某種原因,我的應用程序在我正在測試的平板電腦上崩潰,但不是在電話上。我不確定是什麼導致了這一點。它發生在應用程序的不同部分,但始終從一個屏幕移動到另一個屏幕。Android:應用程序在平板電腦上崩潰,但不是在手機上

這裏似乎崩潰的應用程序的代碼:

public void About(View view) 
    { 
       Intent i = new Intent(); 
       i.setClassName("com.example","com.example.timestableseasy.About"); 
       startActivity(i); 

    } 

about.java

public class About extends Activity 
{ 
TextView home; 
@Override 
public void onBackPressed() { 
} 
@Override 
protected void onCreate(Bundle savedInstanceState) 
{ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_about); 
    home = (TextView) findViewById(R.id.home); 
    home.setOnClickListener(new View.OnClickListener() 
    { 
     @Override 
     public void onClick(View v) 
     { 
      Log.d("Exercise", "button clicked"); 
      Intent i = new Intent(); 
      i.setClassName("com.example","com.example.timestableseasy.Menu2"); 
      startActivity(i);  
     } 


    }); 
} 
} 

這裏是logcat的:

06-16 16:20:59.465: D/AndroidRuntime(6281): Shutting down VM 
06-16 16:20:59.465: W/dalvikvm(6281): threadid=1: thread exiting with uncaught exception (group=0x412f2930) 
06-16 16:20:59.473: E/AndroidRuntime(6281): FATAL EXCEPTION: main 
06-16 16:20:59.473: E/AndroidRuntime(6281): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.timestableseasy.About}: java.lang.NullPointerException 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread.access$700(ActivityThread.java:150) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.os.Handler.dispatchMessage(Handler.java:99) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.os.Looper.loop(Looper.java:175) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread.main(ActivityThread.java:5279) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at java.lang.reflect.Method.invoke(Method.java:511) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at dalvik.system.NativeStart.main(Native Method) 
06-16 16:20:59.473: E/AndroidRuntime(6281): Caused by: java.lang.NullPointerException 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at com.example.timestableseasy.About.onCreate(About.java:25) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.Activity.performCreate(Activity.java:5283) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209) 
06-16 16:20:59.473: E/AndroidRuntime(6281):  ... 11 more 

此之前的工作,但出於某種原因,在上週停止工作。

編輯:我已經消除了在大布局文件中出現錯誤的可能性 - 強制應用程序通過刪除大文件來加載正常版本,它仍然顯示按下按鈕轉到關於屏幕。

+0

你有一個NullPointerEx,你可以發佈更多的關於活動類嗎? – PedroCactus

+0

是的,但它只是一個按鈕和背景 –

+0

@PedroCactus我在Java類中添加。有沒有什麼特別的關於它 –

回答

1

當你的NPE可以發生在這一行的唯一的地方:

home.setOnClickListener(new View.OnClickListener() ... 

這意味着該行:

home = (TextView) findViewById(R.id.home); 

回報null。請確保您的activity_about.xml文件中的TextView之一上實際上有id="@+id/home"

請注意,您可能有單獨的手機和平板電腦的佈局文件。通常,對於手機,佈局取自res/layout文件夾,適用於平板電腦 - 來自res/layout-sw600dp - 並且只有在缺少該格式時纔會使用res/layout中的格式。真的沒有其他地方可能會發生此錯誤。

+0

但我做,它的工作原理。在我的手機上,問題是當我在測試的平板電腦上運行應用程序時 –

+1

@DarrenMurtagh您確定您沒有用於手機和平板電腦的單獨佈局文件嗎?通常,對於手機,佈局取自'res/layout-sw600dp'的'res/layout'文件夾中的文件夾 - 只有在缺少該文件夾時纔會使用res/layout中的文件夾。真的沒有其他地方可能會發生此錯誤。 –

+0

我有獨立的佈局,他們在應用程序的其他部分工作。包括按鈕到達about.java的菜單是其唯一使該應用崩潰的頁面。正如我所說,這是一個最近的問題,只是在工作多次之前纔出現,而根本沒有改變代碼 –

相關問題