我正在尝试学习android编程,我正在创建一个以启动画面开始并在此之后加载菜单类的应用程序。问题是我得到了这个例外
06-04 10:59:37.166: E/AndroidRuntime(926): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.em.example1.MENU" on path: /data/app/com.em.example1-1.apk
我理解异常是什么,但我不明白为什么会发生这种情况。在我的启动画面类中,我像这样加载了Menu活动
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timer = new Thread() {
public void run() {
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
Intent mainApp = new Intent("com.em.example1.MENU");
startActivity(mainApp);
}
}
};
timer.start();
并且菜单类在清单文件中定义,如此
<activity
android:name="com.em.example1.MENU"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.em.example1.MENU" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
当我用两个按钮和标签加载主要活动时,一切正常。但是当我更改它(在我的启动画面活动内)所以它会加载菜单活动它不断给我这个错误。
提前致谢
答案 0 :(得分:3)
右键单击项目转到属性。 Java构建路径。选择订单导出选项卡。确保选中了Android私有库。如果您已引用库项目。同样为图书馆项目做同样的事情。清洁和建设。
答案 1 :(得分:2)
也许你应该使用它:
Intent mainApp = new Intent(this,com.em.example1.MENU.class);
startActivity(mainApp);
答案 2 :(得分:2)
您可以使用此代码,我做了一些更改。它可能对你有所帮助..
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread timer = new Thread() {
public void run() {
try {
sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
} finally {
MENU.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Intent mainApp = new Intent(MENU.this,com.em.example1.MENU.class);
MENU.this.startActivity(mainApp);
}
});
}
}
};
timer.start();
答案 3 :(得分:1)
答案 4 :(得分:1)
尝试在清单文件中更改此行。
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
并尝试这件事
尝试转到Project -> Properties -> Java Build Path -> Order & Export
并确保为您的项目以及您正在使用的所有其他图书馆项目检查Android私有库。之后清理所有项目,看看会发生什么。
答案 5 :(得分:0)
事实证明,我的错误实现起来太简单了......我在名称中使用Android Manifest中的单词Menu大写,而不仅仅是动作名称。感谢您试图帮助我每个人