Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/200.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 未找到类异常Android_Java_Android_Adt - Fatal编程技术网

Java 未找到类异常Android

Java 未找到类异常Android,java,android,adt,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 我理解异常状态,但我不理解为什么会发生

我正在尝试学习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
我理解异常状态,但我不理解为什么会发生这种情况。在我的闪屏类中,我加载菜单活动如下

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>
菜单类在清单文件中定义如下

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>
当我加载带有两个按钮和一个标签的主活动时,一切正常。但当我在我的闪屏活动中更改它以便它加载菜单活动时,它总是给我这个错误


提前感谢

右键单击项目转到属性。Java构建路径。选择订单导出选项卡。确保选择了Android专用库。如果您已引用库项目。对库项目也执行同样的操作。清理并构建。

右键单击项目转到属性。Java构建路径。选择订单导出选项卡。确保选择了Android专用库。如果您已引用库项目。对库项目也执行同样的操作。清洁和建造。

也许你应该使用这个:

Intent mainApp = new Intent(this,com.em.example1.MENU.class);
startActivity(mainApp);

也许你应该用这个:

Intent mainApp = new Intent(this,com.em.example1.MENU.class);
startActivity(mainApp);

在清单中你列出的东西之前的东西是什么?您要查找的是查看应用程序包名称。

在您列出的内容之前的清单中的内容是什么?您要查找的是要查看应用程序包的名称。

请尝试更改清单文件中的这一行

<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私有库。然后清理所有项目,看看会发生什么。

尝试更改清单文件中的此行

<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私有库。之后清理所有项目,看看会发生什么。

您可以使用此代码,我做了一些更改。这可能对你有帮助

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();

您可以使用此代码,我已经做了一些更改。这可能对你有帮助

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();

结果我发现这个错误太简单了,无法理解。。。。。。在Android清单中,我将单词Menu大写为name,而不仅仅是action name。谢谢大家帮助我,因为我发现这个错误太简单了,很难理解。。。。。。在Android清单中,我将单词Menu大写为name,而不仅仅是action name。谢谢大家帮助我,菜单类名为menu?请把那个活动也张贴出来。。在线程中使用睡眠是一个糟糕的设计。检查链接。用于启动屏幕。使用splash被某些@StefanBeike认为是邪恶的。我道歉,我将编辑我的帖子immediately@Raghunandan亲爱的朋友,你上面说的这些都不能解决问题。我只是学习,但是我会考虑你给我的链接,但首先我想解决我的问题,菜单类被命名为菜单?请把那个活动也张贴出来。。在线程中使用睡眠是一个糟糕的设计。检查链接。用于启动屏幕。使用splash被某些@StefanBeike认为是邪恶的。我道歉,我将编辑我的帖子immediately@Raghunandan亲爱的朋友,你上面说的这些都不能解决问题。我只是学习,但是我会考虑你给我的链接,但首先我想解决我的问题,如果你实现线程或手线程,确保你的UI线程不阻塞,而等待工作线程完成不调用线程。这不是一个好的设计。类型菜单的封闭实例在作用域中不可访问这是我得到的错误如果实现Thread或HandlerThread,请确保UI线程在等待工作线程完成时没有阻塞不要调用Thread.wait或Thread.sleep。这不是一个好的设计。在作用域中没有可访问的类型菜单的封闭实例这是我得到的错误,所以我应该从包更改为action intent main?这是你的建议吗?我也试着去理解它,而不是仅仅把它扔进去,然后很高兴它成功了,所以我应该从软件包改成动作意图的主软件包?这是你的建议吗?我也在努力理解它,而不仅仅是把它扔进去,并为它的成功感到高兴