主な問題は、アプリがインストールまたは再起動後にのみ起動することです。2 回目は、アプリケーションが正しく実行されません。詳細は以下。
私はいくつかの奇妙な問題に遭遇しました
1) Libgdx did not detect screen size correctly on Android 4 in
SCREEN_WIDTH = Gdx.graphics.getWidth();
私は369*320
代わりに得た960*540
この問題と戦うために、私は次のようにします。
Activity
を使用して画面サイズを取得するメインクラスを実行しますDisplay
- 次に
AndroidApplication
、Admob と Libgdx クラスを開始するクラスを実行します。
2) 2 番目の問題は、アプリが初期化された値なしで、つまり同じメモリで開始されることです。boolean abc=false;
無効な終了のように見えるなどの値の初期化はありませんか?
Libgdx クラス (3 番目のクラス) では
exit=true
、値を設定して終了し、すべてのテクスチャを破棄します。プログラムは 2 番目のクラスに戻ります。public void onCreate(android.os.Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (Data.exit) finish();
exit
2 番目のクラスは、同じ方法でチェックするメイン アクティビティに戻ります
3) 次に興味深いのは、Gdx.graphics.getWidth()
画面サイズを正しく取得できるようになったことです。ミステリー...
4) もしそうなら、アプリを作り直しました。これで、メイン クラスが Libgdx クラスを開始します。正常に動作して終了しますが、インストールまたは再起動後の初回のみです。数秒で LibgdxonCreate
が起動しますが、起動render()
しません。最初の再起動後に無効な終了のように見えます: メイン クラス コードはこちら
public class MyActivity extends AndroidApplication
implements IActivityRequestHandler {
public void onCreate(android.os.Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
context.startService(new Intent(context, BillingService.class));
....
// Create the libgdx View
View gameView = initializeForView(new MyGame(this), false);
// Create and setup the AdMob view
adView = new AdView(this, AdSize.BANNER, "aaaaaaa");
}
@Override
public synchronized void onPause() {
super.onPause();
}
@Override
public void onStop() {
super.onStop();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
何か案は?ありがとう!!