0

私は私が取り組んできた小さなアプリを持っています。4.2.1を実行しているGalaxyNexusでフレッシュインストールを実行したかったのです。アプリをアンインストールしてから、eclipse経由で再インストールしようとしました。それは正常にインストールされ、logcat、コンソールなどでエラーは発生しません...しかし、クリックしてアプリを実行すると、開くとすぐに閉じます。私はこれを2つの異なる電話で試しました。同じことです。

Galaxy Nexusでは、アンインストールする前にROMを復元すると、Eclipseから必要なすべてのROMを実行できます。私が力を閉じるのは、アンインストールして再インストールした後でのみです。ROMバックアップにインストールされます。

何か案は?!ここで何が起こっているのかをどうやって知ることができますか?

編集:::

アクティビティはマニフェストで一度だけ宣言されます...

バージョン番号を変更しようとしました...効果なし

いくつかのLog.e()をMainActivityに追加しました:

protected void onCreate(Bundle savedInstanceState) {
        Log.e(TAG,"STARTING APP");
        super.onCreate(savedInstanceState);
        // show no back arrow
        Log.e(TAG,"AFTER ONCREATE");
        setContentView(R.layout.activity_firstload);
        Log.e(TAG,"AFTER SETCONTENTVIEW");

        getPrefs();
        Log.e(TAG,"GET PREFS");
        finish();
        Log.e(TAG,"AFTER FINISH");
    }

LogCatに表示される唯一のタグは「AFTERFINISH」です。

仕上げを取り除くと、MainActivityは開いたままになります。主なアクティビティは、設定を確認することだけです。これが私のGetPrefs()です

private void getPrefs() {
        // Get the xml/preferences.xml preferences
        Log.e(TAG,"GET PREFS 1");
        SharedPreferences prefs = PreferenceManager
                .getDefaultSharedPreferences(getBaseContext());
        lp = prefs.getString("defaultreport", "");
        Log.v(TAG, lp);

        if (lp.equals("esac")) {
//          Toast.makeText(MainActivity.this, "ESAC", Toast.LENGTH_SHORT)
//                  .show();
            Intent i = new Intent(MainActivity.this, ESACActivity.class);
            startActivity(i);
        } else if (lp.equals("sac")) {
//          Toast.makeText(MainActivity.this, "SAC", Toast.LENGTH_SHORT)
//                  .show();
            Intent i = new Intent(MainActivity.this, SACActivity.class);
            startActivity(i);
        } else if (lp.equals("msar")) {
//          Toast.makeText(MainActivity.this, "MSAR", Toast.LENGTH_SHORT)
//                  .show();
            Intent i = new Intent(MainActivity.this, MSARActivity.class);
            startActivity(i);
        }

    }

AH>>>何かを見つけた可能性があります。プリファレンスは最初は""(null)に設定されているので、何が読み込まれますか?!だから私は彼らが最初の実行でどちらを設定したいかを尋ねる画面が必要だと思います...

編集編集:::設定での最初の実行を確認する必要があります...

if (prefs.getString("defaultreport", null) == null)
        {
            startActivity(new Intent(this, Preferences.class));
            return;
        }
4

1 に答える 1

0

何を実行するかを決定する文字列は、設定がない場合は何も設定されません。

lp = prefs.getString("defaultreport", "");

その場合のオプションがないため、何も実行されず、最初のアクティビティは他のアクティビティを開始せずに終了します。

于 2013-02-15T01:32:01.410 に答える