following code, modified open source, , below logcat showing error checked code many times dont know problem. please in regard.
/** * mainactivity */ public class mainactivity extends abstractmainactivity implements memory.onmemorylistener { private static final int[] tiles_fruits = { r.drawable.a1, r.drawable.a2, r.drawable.a3, r.drawable.a4, r.drawable.a5, r.drawable.a6, r.drawable.a7, r.drawable.a8, r.drawable.a9, r.drawable.a10, r.drawable.a11, r.drawable.a12, r.drawable.a13, r.drawable.a14, r.drawable.a15, r.drawable.a16, r.drawable.a17, r.drawable.a18, r.drawable.a19, r.drawable.a20, r.drawable.a21, r.drawable.a22 }; private static final int[] tiles_foods = { r.drawable.d1, r.drawable.d2, r.drawable.d3, r.drawable.d4, r.drawable.d5, r.drawable.d6, r.drawable.d7, r.drawable.d8, r.drawable.d9, r.drawable.d10, r.drawable.d11, r.drawable.d12 }; private static final int[][] icons_set = { tiles_fruits, tiles_foods }; private static final int[] sounds = { r.raw.gupp, r.raw.winch, r.raw.chtoing, r.raw.kito, r.raw.kato, r.raw.ding, r.raw.ding2, r.raw.ding3, r.raw.ding4, r.raw.ding5, r.raw.ding6, r.raw.dong, r.raw.swirlup, r.raw.swipp }; private static final int[] not_found_tile_set = { r.drawable.not_found_fruits, r.drawable.not_found_foods }; private memory mmemory; // private int mnotfoundresid; private memorygridview mgridview; /** * {@inheritdoc } */ @override public void oncreate(bundle icicle) { super.oncreate(icicle); preferencesservice.init(this); newgame(); adview madview = (adview) findviewbyid(r.id.adview); adrequest adrequest = new adrequest.builder().build(); madview.loadad(adrequest); } /** * {@inheritdoc } */ @override protected view getgameview() { return mgridview; } /** * {@inheritdoc } */ @override protected void newgame() { int set = preferencesservice.instance().geticonsset(); mmemory = new memory( icons_set[ set ], sounds , not_found_tile_set[ set ], this); mmemory.reset(); mgridview = (memorygridview) findviewbyid(r.id.gridview); mgridview.setmemory(mmemory); drawgrid(); } /** * {@inheritdoc } */ @override protected void preferences() { intent intent = new intent(this, preferencesactivity.class); startactivity(intent); } /** * {@inheritdoc } */ @override protected void onresume() { super.onresume(); mmemory.onresume(preferencesservice.instance().getprefs()); drawgrid(); } /** * {@inheritdoc } */ @override protected void onpause() { super.onpause(); mmemory.onpause(preferencesservice.instance().getprefs(), mquit); } /** * {@inheritdoc } */ public void oncomplete(int countmove) { int nhighscore = preferencesservice.instance().gethiscore(); string title = getstring(r.string.success_title); object[] args = { countmove, nhighscore }; string message = messageformat .format(getstring(r.string.success), args); int icon = r.drawable.win; if (countmove < nhighscore) { title = getstring(r.string.hiscore_title); message = messageformat.format(getstring(r.string.hiscore), args); icon = r.drawable.hiscore; preferencesservice.instance().savehiscore(countmove); } this.showenddialog(title, message, icon); } /** * {@inheritdoc } */ public void onupdateview() { drawgrid(); } /** * draw or redraw grid */ private void drawgrid() { mgridview.update(); } }
below logcat showing error.
06-03 14:54:17.095: e/trace(19172): error opening trace file: no such file or directory (2) 06-03 14:54:17.392: e/androidruntime(19172): fatal exception: main 06-03 14:54:17.392: e/androidruntime(19172): java.lang.runtimeexception: unable start activity componentinfo{com.nyt.game.play.fun/com.nyt.game.play.fun.ui.mainactivity}: java.lang.arrayindexoutofboundsexception: length=2; index=3 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread.performlaunchactivity(activitythread.java:2351) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2403) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread.access$600(activitythread.java:165) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread$h.handlemessage(activitythread.java:1373) 06-03 14:54:17.392: e/androidruntime(19172): @ android.os.handler.dispatchmessage(handler.java:107) 06-03 14:54:17.392: e/androidruntime(19172): @ android.os.looper.loop(looper.java:194) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread.main(activitythread.java:5370) 06-03 14:54:17.392: e/androidruntime(19172): @ java.lang.reflect.method.invokenative(native method) 06-03 14:54:17.392: e/androidruntime(19172): @ java.lang.reflect.method.invoke(method.java:525) 06-03 14:54:17.392: e/androidruntime(19172): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:833) 06-03 14:54:17.392: e/androidruntime(19172): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:600) 06-03 14:54:17.392: e/androidruntime(19172): @ dalvik.system.nativestart.main(native method) 06-03 14:54:17.392: e/androidruntime(19172): caused by: java.lang.arrayindexoutofboundsexception: length=2; index=3 06-03 14:54:17.392: e/androidruntime(19172): @ com.nyt.game.play.fun.ui.mainactivity.newgame(mainactivity.java:72) 06-03 14:54:17.392: e/androidruntime(19172): @ com.nyt.game.play.fun.ui.mainactivity.oncreate(mainactivity.java:52) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activity.performcreate(activity.java:5122) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1150) 06-03 14:54:17.392: e/androidruntime(19172): @ android.app.activitythread.performlaunchactivity(activitythread.java:2315)
below icons_set
private static final int[][] icons_set = { tiles_fruits, tiles_foods };
and here geticonsset method
public int geticonsset() { return getprefs().getint(pref_icons_set, icons_set_fruits); }
complete code here
you java.lang.arrayindexoutofboundsexception: length=2; index=3
because int set = preferencesservice.instance().geticonsset();
returns 3 array icons_set
has 2 arguments.
you make sure array has enough elements.
Comments
Post a Comment