找不到类Exception Android

时间:2013-06-04 11:06:29

标签: java android adt

我正在尝试学习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>

当我用两个按钮和标签加载主要活动时,一切正常。但是当我更改它(在我的启动画面活动内)所以它会加载菜单活动它不断给我这个错误。

提前致谢

6 个答案:

答案 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大写,而不仅仅是动作名称。感谢您试图帮助我每个人