在卸载后不会重新安装,开发Android App安装正常

时间:2013-02-14 23:04:39

标签: android

我有一个小应用程序,我一直在努力。我希望从运行4.2.1的Galaxy Nexus上运行全新安装。我卸载了应用程序,然后尝试通过eclipse重新安装它。它在logcat,console等中安装很好,没有错误......但是当你点击运行应用程序时,它只是在打开时关闭。我在2个不同的手机上试过这个,同样的事情。

在Galaxy Nexus上,如果我在卸载前恢复ROM,我可以从eclipse中运行它。只有在卸载并重新安装后我才能关闭力量。它安装在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中显示的唯一标签是“AFTER FINISH”

如果我没有完成,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)所以它会加载什么?!所以我需要一个屏幕,询问他们想要在FIRST RUN上设置我猜...

EDIT EDIT :::需要检查Prefs中的第一次运行...

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

1 个答案:

答案 0 :(得分:0)

如果没有首选项,则决定运行什么的字符串将设置为空。

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

由于你没有选择这种情况,所以没有任何东西可以运行,初始活动将关闭,而不会启动任何其他活动。