Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android应用程序在加载过程中被触摸时崩溃_Java_Android_Android Layout_Opengl Es - Fatal编程技术网

Java Android应用程序在加载过程中被触摸时崩溃

Java Android应用程序在加载过程中被触摸时崩溃,java,android,android-layout,opengl-es,Java,Android,Android Layout,Opengl Es,我制作了一个3d应用程序(min3D框架),它在布局中运行。布局包含一些控制游戏的按钮。这个很好用。但是布局看起来比游戏本身要快,当我触摸应用程序加载的区域时,它会崩溃。如果我等待,不接触该区域,则不会出现错误。那么一切都好了 我怎样才能解决这个问题 我现在知道,应用程序正在崩溃,它应该添加一个尚未加载的对象。这一切都在onTouchEvent函数中。但是为什么在初始化场景完成之前,这项工作就开始了呢 日志: 01-13 21:17:20.476: E/AndroidRuntime(20189)

我制作了一个3d应用程序(min3D框架),它在布局中运行。布局包含一些控制游戏的按钮。这个很好用。但是布局看起来比游戏本身要快,当我触摸应用程序加载的区域时,它会崩溃。如果我等待,不接触该区域,则不会出现错误。那么一切都好了

我怎样才能解决这个问题

我现在知道,应用程序正在崩溃,它应该添加一个尚未加载的对象。这一切都在onTouchEvent函数中。但是为什么在初始化场景完成之前,这项工作就开始了呢

日志:

01-13 21:17:20.476: E/AndroidRuntime(20189): FATAL EXCEPTION: main
01-13 21:17:20.476: E/AndroidRuntime(20189): java.lang.NullPointerException
01-13 21:17:20.476: E/AndroidRuntime(20189):    at com.appboss.min3d.core.Scene.addChild(Scene.java:112)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at com.appboss.soyuz.Rocket.onTouchEvent(Rocket.java:250)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.app.Activity.dispatchTouchEvent(Activity.java:2231)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1795)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.view.ViewRoot.deliverPointerEvent(ViewRoot.java:2336)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.view.ViewRoot.handleMessage(ViewRoot.java:1976)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.os.Looper.loop(Looper.java:150)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at android.app.ActivityThread.main(ActivityThread.java:4277)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at java.lang.reflect.Method.invokeNative(Native Method)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at java.lang.reflect.Method.invoke(Method.java:507)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 21:17:20.476: E/AndroidRuntime(20189):    at dalvik.system.NativeStart.main(Native Method

您应该仅在加载对象后启用/添加触摸侦听器。Util此时可能会显示加载对话框/等待屏幕。您的logcat解释了它是NullPointerException


Scene.java,addChild()方法中的第112行

com.appboss.soyuz.Rocket.onTouchEvent(Rocket.java:250)这就是你的罪魁祸首。你可以在应用程序完全加载之前捕获它-创建一个标志isCreated(isLoaded)或其他。在向用户提供控件之前,是否有加载屏幕

为什么不尝试使用AsyncTask在后台加载游戏,并弹出一个“请稍候,同时加载游戏”对话框,该对话框将在AsyncTask的doInBackground()结束时被取消


这是我所知道的最好的解决方法,但它假设您不介意一个小的加载对话框

你的LogCat说错误是什么?现在在描述中。似乎触摸已经开始工作,但对象尚未加载。mhh:/如果能看到一段代码就好了。