我有一个小应用程序,我一直在努力。我希望从运行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;
}
答案 0 :(得分:0)
如果没有首选项,则决定运行什么的字符串将设置为空。
lp = prefs.getString("defaultreport", "");
由于你没有选择这种情况,所以没有任何东西可以运行,初始活动将关闭,而不会启动任何其他活动。