Note that there are some explanatory texts on larger screens.

plurals
  1. PONewbie - Force close on simple method
    text
    copied!<p>xml and logcat now added, now custom view code, unfortunately i am away from devel computer so i cant check your suggestions, @jems, i may have the wrong constructor for my custom view? @Falmarri, i think the build target is 2.2</p> <p>Hopefully a simple thing I don't know about:</p> <p>I have a main game activity, and this calls a class which i have extended from the view class. Here it is, in working form:</p> <pre><code>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); } </code></pre> <p>It all was going well, showing my game screen well, until I tried the following, which gives a force close:</p> <pre><code>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 } </code></pre> <p>What I want is to run a method that will get some info from the guappsxoboardview class, and this was the test case. The method looks like this:</p> <pre><code> public void hello(){ int x = 1; } </code></pre> <p>LogCat says:</p> <pre><code>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} </code></pre> <p>Here is the XML for this:</p> <pre><code>&lt;?xml version="1.0" encoding="utf-8"?&gt; &lt;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" &gt; &lt;com.guapps.guappsXOBoardView android:id="@+id/boardview" android:layout_width="match_parent" android:layout_height="match_parent" /&gt; &lt;/LinearLayout&gt; </code></pre> <p>Hopefully I have done something obvious wrong, thanks.</p> <p>Now most of the custom view code also:</p> <pre><code>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); } ..... </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload