libgdx Android应用程序类
Posted
技术标签:
【中文标题】libgdx Android应用程序类【英文标题】:libgdx AndroidApplication class 【发布时间】:2012-06-06 12:54:55 【问题描述】:androidApplication 类扩展了 android 活动类,那么为什么会出现以下错误:
06-06 05:47:17.610: E/AndroidRuntime(12567): java.lang.RuntimeException: Unable to resume activity com.badlogic.drop/com.badlogic.drop.MainActivity: java.lang.NullPointerException
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2288)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2316)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1836)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.access$500(ActivityThread.java:122)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.os.Looper.loop(Looper.java:132)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.main(ActivityThread.java:4123)
06-06 05:47:17.610: E/AndroidRuntime(12567): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 05:47:17.610: E/AndroidRuntime(12567): at java.lang.reflect.Method.invoke(Method.java:491)
06-06 05:47:17.610: E/AndroidRuntime(12567): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-06 05:47:17.610: E/AndroidRuntime(12567): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-06 05:47:17.610: E/AndroidRuntime(12567): at dalvik.system.NativeStart.main(Native Method)
06-06 05:47:17.610: E/AndroidRuntime(12567): Caused by: java.lang.NullPointerException
06-06 05:47:17.610: E/AndroidRuntime(12567): at com.badlogic.gdx.backends.android.AndroidApplication.onResume(AndroidApplication.java:223)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1153)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.Activity.performResume(Activity.java:4468)
06-06 05:47:17.610: E/AndroidRuntime(12567): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2278)
我将 MainActivity 类从 Activity 扩展到 AndroidApplication ,然后它给出了上述错误。但是当我取消注释以下评论部分时,它可以完美运行。请帮助解决它。
public class MainActivity extends AndroidApplication
AndroidApplication app;
LinearLayout m3d;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
/* AndroidApplicationConfiguration config = new AndroidApplicationConfiguration();
config.useGL20 = false;
config.useAccelerometer = false;
config.useCompass = false;
m3d = (LinearLayout) findViewById(R.id.m3d);
View m3dDrop = initializeForView(new Drop(), config);
m3d.addView(m3dDrop); */
【问题讨论】:
您能否将视图作为子视图渲染到主布局中? 【参考方案1】:我猜是因为你没有调用initializeForView()
,它需要在onCreate()
中调用。 documentation 解释说您需要所有注释代码。
要解决,只需将注释的代码放回即可。为什么还要将其取出?
【讨论】:
谢谢。我这样做是因为我已经有了扩展 Activity 类的 android 主类。现在我想在这个主布局中使用 libgdx 渲染视图作为子视图。但是当我从 AndroidApplication 扩展它时,它给了我一个错误。 @CodeDroid 我不知道。尝试一下会很有趣。以上是关于libgdx Android应用程序类的主要内容,如果未能解决你的问题,请参考以下文章
LibGdx 如何从 libgdx 类返回到 androidActivity
libGDX:FrameBuffer 大小限制 == 最大纹理大小?