0

我无法解决这个问题。我其实不明白这一点。我正在创建一个游戏。一项活动,一个级别有大约 1000 行代码,所以我不会全部输入。但是问题看起来像这样:有一些启动活动,它启动了菜单活动并自行关闭。然后我打开我的第一个级别活动[从菜单,我通过finish()关闭菜单活动],当它完成时[这个级别活动],我想开始另一个活动。但是出现了问题。直到 3 天前一切正常,现在当我尝试打开活动时它只是崩溃了。如果我能记住并编辑了几行代码,我只是在我的游戏中添加了一些位图。我关卡中的这个片段正在关闭它,并假设打开菜单活动:

canvas.drawBitmap(game_over, 0, 0, null);
                    try {
                        Thread.sleep(500);
                    } catch (InterruptedException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                    soSelCarIgn.release();
                    soSelCarRun.release();
                    Intent menu=new Intent("com.ntii.game.adam.Menu");
                    startActivity(menu);
                    finish();

所以我尝试打开活动,在我第二次开始游戏时打开没有问题。它发生在任何其他活动中,除了关卡本身。(我的意思是,当我尝试在关卡中打开关卡然后完成()第一个关卡时,它可以工作)。当我删除开始活动的行时,关卡会自行关闭,一切正常,没有任何错误。

安卓清单:

<activity
        android:name=".Menu"
        android:label="@string/title_activity_main"
        android:screenOrientation="portrait"
        android:noHistory="true" >
        <intent-filter>
            <action android:name="com.ntii.game.adam.Menu" />
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

有这一行“android:noHistory="true" 因为我尝试了任何方法来关闭这个活动。它给了我错误: http: //img839.imageshack.us/img839/7426/wtfvh.jpg

我最近添加的位图是小尺寸的 jpeg,更重要的是我尝试优化和清理代码,删除了一些其他位图,仍然不起作用。看起来这个活动在完成()之后没有关闭,当我尝试打开菜单活动时,没有足够的内存。任何想法,线索?

如果有人不了解整个活动的运行顺序:

SPLASH --> 菜单 --> LEVEL - 尝试打开,但有崩溃 -> 菜单

4

2 回答 2

1

问题在这里:

Intent menu=new Intent("com.ntii.game.Menu");

利用

Intent menu=new Intent("com.ntii.game.adam.Menu");

或者

Intent menu=new Intent(this, com.ntii.game.adam.Menu.class);
于 2013-01-12T20:22:47.217 回答
0

尝试这个:

Intent menu = new Intent(currentClass.this, Menu.class);

startActivityForResult(menu,0);

原因是,类的名称是“Menu”,这是您要引用的内容,您不需要动作名称,即:“com.ntii.game.adam.Menu”。** currentClass 只是指您的应用程序中的当前类,因为我不知道它是什么。

于 2013-01-12T22:41:54.060 回答