2011-01-29 11 views
1

xmlとlogcatが追加されました。 残念ながら私はdevelのコンピュータから離れていますので、あなたの提案を確認できません。 @jems、私は私のカスタムビュー? @Falmarriは、私は、ビルドターゲットがうまくいけば、2.2初心者の方 - 簡単な方法で終了する

について私にはわからない単純なことだと思う:私はメインのゲーム活性を有する

、これは私がビュークラスから拡張したクラスを呼び出します。 ここでは、作業の形で、次のとおりです。

public class guappsXOMainGame extends Activity { 

private static final int cellsX=10; 
private static final int cellsY=10; 

private guappsXOBoardView mBoardView; 



@Override 
public void onCreate(Bundle bund) { 
    super.onCreate(bund); 


    setContentView(R.layout.gamescreen);//loads xml layout called gamescreen 
    mBoardView = (guappsXOBoardView) findViewById(R.id.boardview); 

} 

私は近い力を与える以下、試してみましたまでそれはすべてが、よく私のゲーム画面を示す、うまくいった:私が欲しいもの

public void onCreate(Bundle bund) { 
    super.onCreate(bund); 

    setContentView(R.layout.gamescreen);//loads xml layout called gamescreen 
    mBoardView = (guappsXOBoardView) findViewById(R.id.boardview); 
    mBoardView.hello();//problem line 



} 

をguappsxoboardviewクラスから情報を取得するメソッドを実行することです。これがテストケースです。 方法次のようになります。

public void hello(){ 

    int x = 1; 

} 

LogCatは言う:ここ

01-29 20:50:46.415: INFO/ActivityManager(60): Starting activity: Intent { cmp=com.guapps/.guappsXOMainGame } 
01-29 20:50:46.535: DEBUG/AndroidRuntime(564): Shutting down VM 
01-29 20:50:46.535: WARN/dalvikvm(564): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564): FATAL EXCEPTION: main 
01-29 20:50:46.566: ERROR/AndroidRuntime(564): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.guapps/com.guapps.guappsXOMainGame}: java.lang.NullPointerException 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.os.Handler.dispatchMessage(Handler.java:99) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.os.Looper.loop(Looper.java:123) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at java.lang.reflect.Method.invokeNative(Native Method) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at java.lang.reflect.Method.invoke(Method.java:521) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at dalvik.system.NativeStart.main(Native Method) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564): Caused by: java.lang.NullPointerException 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at com.guapps.guappsXOMainGame.onCreate(guappsXOMainGame.java:38) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
01-29 20:50:46.566: ERROR/AndroidRuntime(564):  ... 11 more 
01-29 20:50:46.596: WARN/ActivityManager(60): Force finishing activity com.guapps/.guappsXOMainGame 
01-29 20:50:46.596: WARN/ActivityManager(60): Force finishing activity com.guapps/.guappsXOStart 
01-29 20:50:46.745: DEBUG/dalvikvm(60): GC_FOR_MALLOC freed 7966 objects/468848 bytes in 99ms 
01-29 20:50:47.108: WARN/ActivityManager(60): Activity pause timeout for HistoryRecord{44009a08 com.guapps/.guappsXOMainGame} 
01-29 20:50:48.375: INFO/Process(564): Sending signal. PID: 564 SIG: 9 
01-29 20:50:48.385: INFO/ActivityManager(60): Process com.guapps (pid 564) has died. 
01-29 20:50:48.385: INFO/WindowManager(60): WIN DEATH: Window{440530d0 com.guapps/com.guapps.guappsXOStart paused=true} 
01-29 20:50:48.445: WARN/InputManagerService(60): Got RemoteException sending setActive(false) notification to pid 564 uid 10032 
01-29 20:50:57.482: WARN/ActivityManager(60): Activity destroy timeout for HistoryRecord{43fc4248 com.guapps/.guappsXOStart} 
01-29 20:50:57.488: WARN/ActivityManager(60): Activity destroy timeout for HistoryRecord{44009a08 com.guapps/.guappsXOMainGame} 

は、このためのXMLです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:gravity="center_horizontal" 
> 

<com.guapps.guappsXOBoardView 
    android:id="@+id/boardview" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 


    /> 

</LinearLayout> 

うまくいけば、私は明らかに何か間違って、感謝を行っています。今

また、カスタムビューのコードの中で最も:

package com.guapps; 

import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.Color; 
import android.graphics.RectF; 
import android.util.AttributeSet; 
import android.view.View; 



public class guappsXOBoardView extends View { 

    int screenHeight; 
    int screenWidth; 
    Context mContext; 
    private float leftG; 
    private float topG; 
    private float rightG; 
    private float botG; 




    Bitmap boardGrid; 




    public guappsXOBoardView(Context context, AttributeSet attrs) { 
      super(context); 
      requestFocus(); 


    } 


    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec){ 

     screenWidth = View.MeasureSpec.getSize(widthMeasureSpec); 
     screenHeight = View.MeasureSpec.getSize(heightMeasureSpec); 

     setMeasuredDimension(screenWidth, screenHeight); 


    } 

    @Override 
    protected void onDraw(Canvas canvas){ 



     canvas.drawColor(Color.WHITE); 


     } 
..... 
+0

あなたの完全なLogCatを投稿してください。 – user432209

+0

また、gamescreen.xmlファイルを投稿してください。私はここにエラーがあると思うし、findViewById(R.id.boardview)はnullを結果として返す。 – Jems

+1

カスタムビューコードも投稿できますか? public guappsXOBoardView(コンテキストコンテキスト、AttributeSet attrs、Map params) { super(context、attrs、params);コンストラクタがない場合は、 }動作しない可能性があります。 – Jems

答えて

0

あなたのおかげで、私のバグが見つかりました。

私のカスタムビューのコンストラクタにはスーパー(コンテキスト)があります。 super(context、attrs)の代わりに、findviewbyidがnullを返す原因となっていました。

0

は愚かなようだが、これほど多くの人が忘れてしまった...あなたはマニフェストに活動を追加しましたか?

+0

そうであれば、別のlogcatメッセージになります。 – Falmarri

0

おそらく、requestFocus()をコンストラクタから削除しようとします。 どうしてあなたはそれを必要としますか?

関連する問題