Java LogCat中的Android错误
首先,我很抱歉,我是一个android开发的初学者,也是论坛的新手。 当我在模拟器上运行应用程序时,我得到了错误;“应用程序(应用程序名称)意外停止。请重试。”我正在努力解释我的日志。我还尝试调整清单和src文件中的“MAIN”和“MENU”名称以匹配,但知道结果,除非我遗漏了什么。 这是我的日志:Java LogCat中的Android错误,java,android,eclipse,logcat,android-logcat,Java,Android,Eclipse,Logcat,Android Logcat,首先,我很抱歉,我是一个android开发的初学者,也是论坛的新手。 当我在模拟器上运行应用程序时,我得到了错误;“应用程序(应用程序名称)意外停止。请重试。”我正在努力解释我的日志。我还尝试调整清单和src文件中的“MAIN”和“MENU”名称以匹配,但知道结果,除非我遗漏了什么。 这是我的日志: 01-06 16:50:32.273: D/dalvikvm(490): GC_EXTERNAL_ALLOC freed 652 objects / 51480 bytes in 92ms 01-0
01-06 16:50:32.273: D/dalvikvm(490): GC_EXTERNAL_ALLOC freed 652 objects / 51480 bytes in 92ms
01-06 16:50:37.813: D/AndroidRuntime(490): Shutting down VM
01-06 16:50:37.813: W/dalvikvm(490): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-06 16:50:37.863: E/AndroidRuntime(490): FATAL EXCEPTION: main
01-06 16:50:37.863: E/AndroidRuntime(490): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.knight.baseproject/com.knight.baseproject.com.knight.baseproject.MENU}: java.lang.ClassNotFoundException: com.knight.baseproject.com.knight.baseproject.MENU in loader dalvik.system.PathClassLoader[/data/app/com.knight.baseproject-2.apk]
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread.access$2300(ActivityThread.java:125)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.os.Handler.dispatchMessage(Handler.java:99)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.os.Looper.loop(Looper.java:123)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-06 16:50:37.863: E/AndroidRuntime(490): at java.lang.reflect.Method.invokeNative(Native Method)
01-06 16:50:37.863: E/AndroidRuntime(490): at java.lang.reflect.Method.invoke(Method.java:521)
01-06 16:50:37.863: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-06 16:50:37.863: E/AndroidRuntime(490): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-06 16:50:37.863: E/AndroidRuntime(490): at dalvik.system.NativeStart.main(Native Method)
01-06 16:50:37.863: E/AndroidRuntime(490): Caused by: java.lang.ClassNotFoundException: com.knight.baseproject.com.knight.baseproject.MENU in loader dalvik.system.PathClassLoader[/data/app/com.knight.baseproject-2.apk]
01-06 16:50:37.863: E/AndroidRuntime(490): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
01-06 16:50:37.863: E/AndroidRuntime(490): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
01-06 16:50:37.863: E/AndroidRuntime(490): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-06 16:50:37.863: E/AndroidRuntime(490): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
01-06 16:50:37.863: E/AndroidRuntime(490): ... 11 more
这是舱单:
以下是“主”java脚本:
package com.knight.baseproject;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
public class MAIN extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
Thread logoTimer = new Thread(){
public void run(){
try{
sleep(5000);
Intent menuIntent = new Intent("com.knight.baseproject.MENU");
startActivity(menuIntent);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
finally{
finish();
}
}
};
logoTimer.start();
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
}
“菜单”java(我认为没有影响):
您需要将活动添加到AndroidManifest.xml文件中。请尝试以下选项 选项1
您还需要检查属性-->Java编译器-->JDK符合性。尝试了解如何调试错误,您可以读取堆栈跟踪,也可以通过调试器运行应用程序。从头到尾阅读,你会发现实际发生了什么
01-06 16:50:37.863: E/AndroidRuntime(490): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.knight.baseproject/com.knight.baseproject.com.knight.baseproject.MENU}: java.lang.ClassNotFoundException: com.knight.baseproject.com.knight.baseproject.MENU in loader dalvik.system.PathClassLoader[/data/app/com.knight.baseproject-2.apk]
01-06 16:50:37.863: E/AndroidRuntime(490): Caused by: java.lang.ClassNotFoundException: com.knight.baseproject.com.knight.baseproject.MENU in loader dalvik.system.PathClassLoader[/data/app/com.knight.baseproject-2.apk]
如果您正确阅读它,您会发现“ClassNotFoundException”发生异常,因为它找不到该类
我认为这是因为您没有在AndroidManifest.xml中添加活动,应用程序中使用的任何活动都应该在清单文件中定义
如果您可以发布您的代码和清单,那就太好了。更改
android:name=".com.knight.baseproject.MENU"
到
在你的舱单上
<activity
android:name=".com.knight.baseproject.MENU"
删除首字母
,或将名称更改为just。MENU
您可以通过将问题设为SSCE来改进问题:。您可以通过搜索SO以查找已回答您问题的问题,然后不发布副本来进一步改进问题。投票SO成员:这可能不是JVM以来的重复正在抱怨另一个组件。对于那些投票结束的人,也许你可以解释为什么它适用,即使组件不同。也许这适用于这种情况:我应该检查哪个顺序和导出,它们是在包资源管理器中打开项目时显示的吗?否。右键单击包资源管理器中的项目名称,然后单击“属性”。在左侧,选择Java构建路径。现在第四个选项卡是“订单和导出”,请先尝试选项1和3。如果不起作用,请检查所有与项目相关的目录。示例-Test/src和Test/gen.以及Android x.x.x,然后单击Ok.Ok。(projectname)/src和(projectname)/gen已填充框,不可勾选/不可勾选。但在它们下面是:安卓4.4.2、安卓私有库、安卓依赖项。所以我应该检查4.4.2和依赖项?这只是一种良好的常规做法,也是我应该经常做的事情吗?非常感谢,这解决了我的沮丧。
android:name="com.knight.baseproject.MENU"
<activity
android:name=".com.knight.baseproject.MENU"
java.lang.ClassNotFoundException: com.knight.baseproject.com.knight.baseproject.MENU in loader dalvik.system.PathClassLoader[/data/app/com.knight.baseproject-2.apk]