2014-06-16 121 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的菜单是其唯一使该应用崩溃的页面。正如我所说,这是一个最近的问题,只是在工作多次之前才出现,而根本没有改变代码 –

相关问题