2014-12-21 4 views
-2

안녕하세요. 안녕하세요, 안드로이드에서 안드로이드를 배우고 있으며, 3 장에서 멈추었습니다. 사용자가 about 버튼을 클릭하면 약 버튼을 클릭했을 때 스도쿠 게임에 대한 정보가 포함 된 새로운 활동을 표시하려하지만 불행히도 스도쿠가 중단되었음을 보여주는 앱을 실행 한 이유가 있습니다. 직접 해결할 수는 있었지만 할 수 없었습니다. 파일이안드로이드 앱에 오류가 표시됨 (불행히도 스도쿠가 멈췄습니다.)

0 about.xml

아래

의 AndroidManifest.xml

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

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 
    <activity 
     android:name="com.android.sudoku.Sudoku" 
     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=".About" 
     android:label="@string/about_title"> 
    </activity> 

</application> 

나열되어 여기
.I이 hellllllllllp을 필요로하는 문제를 파악

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:padding="10dip" 
    > 

    <TextView 
     android:id="@+id/about_content" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:text="@string/about_text"/> 

</ScrollView> 

activity_sudoku.xml (내 주요 활동)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center" 
android:orientation="vertical" 
android:background="@color/background" 
android:padding="30dip" > 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_marginBottom="25dip" 
    android:text="@string/main_title" 
    android:textSize="24.5sp" /> 

<Button 
    android:id="@+id/continue_button" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/continue_label" /> 

<Button 
    android:id="@+id/meow" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/new_game_label" /> 

<Button 
    android:id="@+id/about_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/about_label" /> 

<Button 
    android:id="@+id/exit_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/exit_label" /> 

<Button 
    android:id="@+id/ext_button" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/dialog_label" /> 

</LinearLayout> 

Sudoku.java

package com.android.sudoku; 

//import android.support.v7.app.ActionBarActivity; 
//import android.support.v7.app.ActionBar; 
//import android.support.v4.app.Fragment; 
import android.content.Intent; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.os.Bundle; 
//import android.view.LayoutInflater; 
//import android.view.Menu; 
//import android.view.MenuItem; 
import android.app.Activity; 
//import android.view.View; 
//import android.view.ViewGroup; 
//import android.os.Build; 

public class Sudoku extends Activity implements OnClickListener{ 

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

     // setup click listeners for all the button 
     View continueButton = findViewById(R.id.continue_button); 
     continueButton.setOnClickListener(this); 

     View newButton = findViewById(R.id.new_button); 
     newButton.setOnClickListener(this); 
     System.out.print("here "); 
     View aboutButton = findViewById(R.id.about_button); 
     aboutButton.setOnClickListener(this); 
     System.out.println("no error"); 
     View exitButton = findViewById(R.id.exit_button); 
     exitButton.setOnClickListener(this); 

     View dialogButton = findViewById(R.id.ext_button); 
     dialogButton.setOnClickListener(this); 

     if (savedInstanceState == null) { 

     } 
    } 


    public void onClick(View v) { 

     switch(v.getId()) { 

     case R.id.about_button: 
      Intent i = new Intent(this,About.class); 
      startActivity(i); 
      break; 
     // more buttons go here id any 
     } 

    } 

} 

About.java

package com.android.sudoku; 
import android.app.Activity; 
import android.os.Bundle; 
public class About extends Activity { 
protected void onCreate(Bundle savedInstanceState) { 

    super.onCreate(savedInstanceState); 
    setContentView(R.layout.about); 
} 
} 

로그 캣 오류

12-21 08:03:36.452: E/AndroidRuntime(1415): FATAL EXCEPTION: main 
12-21 08:03:36.452: E/AndroidRuntime(1415): Process: com.android.sudoku, PID: 1415 
12-21 08:03:36.452: E/AndroidRuntime(1415): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.sudoku/com.android.sudoku.Sudoku}: java.lang.NullPointerException 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.os.Handler.dispatchMessage(Handler.java:102) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.os.Looper.loop(Looper.java:136) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at java.lang.reflect.Method.invoke(Method.java:515) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at dalvik.system.NativeStart.main(Native Method) 
12-21 08:03:36.452: E/AndroidRuntime(1415): Caused by: java.lang.NullPointerException 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at com.android.sudoku.Sudoku.onCreate(Sudoku.java:30) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.Activity.performCreate(Activity.java:5231) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
12-21 08:03:36.452: E/AndroidRuntime(1415):  ... 11 more 
12-21 08:03:42.062: I/Process(1415): Sending signal. PID: 1415 SIG: 9 
12-21 08:04:17.702: D/AndroidRuntime(1455): Shutting down VM 
12-21 08:04:17.702: W/dalvikvm(1455): threadid=1: thread exiting with uncaught exception (group=0xb2af0ba8) 
12-21 08:04:17.732: E/AndroidRuntime(1455): FATAL EXCEPTION: main 
12-21 08:04:17.732: E/AndroidRuntime(1455): Process: com.android.sudoku, PID: 1455 
12-21 08:04:17.732: E/AndroidRuntime(1455): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.android.sudoku/com.android.sudoku.Sudoku}: java.lang.NullPointerException 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2195) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread.access$800(ActivityThread.java:135) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.os.Handler.dispatchMessage(Handler.java:102) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.os.Looper.loop(Looper.java:136) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread.main(ActivityThread.java:5017) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at java.lang.reflect.Method.invoke(Method.java:515) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at dalvik.system.NativeStart.main(Native Method) 
12-21 08:04:17.732: E/AndroidRuntime(1455): Caused by: java.lang.NullPointerException 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at com.android.sudoku.Sudoku.onCreate(Sudoku.java:30) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.Activity.performCreate(Activity.java:5231) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159) 
12-21 08:04:17.732: E/AndroidRuntime(1455):  ... 11 more 
12-21 08:04:21.882: I/Process(1455): Sending signal. PID: 1455 SIG: 9 
+0

@ShivankSagar 이것이 내가 내 댓글 –

+1

@shayanpourvatan 오우 신 게시하시기 바랍니다 실행 오류 ...는 xml 파일에서 'textview'또는 'button'(또는 레이아웃)을 정의하지 않았 음을 의미합니다. –

+0

을 삭제 names.sorry와 난 그냥 혼란 논리적 오류 – Riad

답변

0

레이아웃에 ID가 new_button 인보기를 볼 수 없습니다. 따라서 findViewById(R.id.new_button)null을 반환하고 null에 대해 메서드를 호출하면 예외가 발생합니다.

+0

고맙습니다. –

0

대신 :

View newButton = findViewById(R.id.new_button); 

사용이 :

Button newButton = (Button) findViewById(R.id.new_button); 
+0

new_button이라는 id를 가지고 있지 않아서 고맙습니다. 내 id (야옹)로 바꿔 줘서 고마워요. –

+0

감사합니다. – issathink

관련 문제