xml和logcat現在添加, 現在自定義視圖代碼,不幸的是我遠離開發計算機,所以我不能檢查您的建議, @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);
}
.....
請發佈您的完整LogCat。 – user432209
也請發佈您的gamescreen.xml文件。我認爲錯誤在這裏,因此findViewById(R.id.boardview)返回null。 – Jems
你可以發佈自定義視圖代碼嗎?如果你遺漏了一個構造函數,它會: public(gui) }它可能無法正常工作。 – Jems