この問題を解決できません。私は実際にこれを理解していません。ゲームを作っています。1 つのレベルの 1 つのアクティビティには約 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();
というわけで、2つ前にゲームを起動したときに問題なく開いていたアクティビティを開こうとします。レベル自体を除く、他のアクティビティで発生します。(つまり、レベルでレベルを開こうとすると、最初のものを終了()して動作します)。アクティビティを開始している行を削除すると、レベルが自動的に閉じられ、エラーなしですべて問題ありません。
Androidマニフェスト:
<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 です。さらに、コードを最適化してクリーンアップしようとしましたが、他のビットマップをいくつか削除しましたが、まだ機能しません。このアクティビティは、finish() の後で閉じていないようで、メニュー アクティビティを開こうとすると、十分なメモリがありません。アイデア、手がかりはありますか?
誰かがこのアクティビティの実行順序全体を理解していない場合:
スプラッシュ --> メニュー --> レベル - 開こうとしましたが、クラッシュが発生しました -> メニュー