2014-06-16 2 views
0

테스트 할 태블릿에서는 내 앱이 작동하지 않지만 휴대 전화에서는 작동하지 않습니다. 나는 이것이 무엇을 일으키는 지 모르겠습니다. 앱의 다른 부분에서 발생하지만 항상 한 화면에서 다른 화면으로 이동할 때입니다. 로그 캣Android : 태블릿에서는 앱이 작동하지 않지만 휴대 전화에서는 작동하지 않습니다.

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

    } 

여기

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);  
     } 


    }); 
} 
} 

about.java된다 : 여기

이 응용 프로그램을 충돌 것으로 보인다 코드입니다,

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가 있으면 About 활동 수업을 더 게시 할 수 있습니까? – PedroCactus

+0

그래, 그 버튼과 배경이 맞다. –

+0

@PedroCactus 자바 클래스에 추가했다. 그것에 대해 특별한 것도 없다. –

답변

1

발생할 수 있습니다 NPE이 줄에있는 유일한 장소 :

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

이이 줄을 의미

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

반환 null. activity_about.xml 파일의 TextView 중 하나에 실제로 id="@+id/home"이 있는지 확인하십시오.

휴대 전화 및 태블릿을위한 별도의 레이아웃 파일이있을 수 있습니다. 일반적으로 휴대 전화의 경우 레이아웃은 res/layout-sw600dp의 태블릿 용 res/layout 폴더에서 가져오고 해당 레이아웃이없는 경우에만 res/레이아웃의 레이아웃이 사용됩니다. 이 오류가 발생할 수있는 다른 장소는 없습니다.

+0

하지만 할 수 있습니다. 내 휴대 전화에서 문제는 응용 프로그램이 태블릿에서 실행될 때입니다. –

+1

@DarrenMurtagh 휴대 전화 및 태블릿을위한 별도의 레이아웃 파일이 없습니까?일반적으로, 전화의 경우, 레이아웃은'res/layout-sw600dp'에서 태블릿을위한'res/layout' 폴더에서 가져옵니다. 단 하나가 빠진 경우에만'res/layout'의 것이 사용됩니다. 이 오류가 발생할 수있는 다른 장소는 없습니다. –

+0

나는 별도의 레이아웃을 가지고 있으며 앱의 다른 모든 부분에서 작동합니다. about.java로 이동하는 버튼은 앱을 크래시하는 유일한 페이지입니다. 그리고 내가 말했듯이 이것은 코드를 전혀 바꾸지 않고 여러 번 workign 후에 막 나타난 최근의 문제입니다. –

관련 문제