Java Android应用程序因代码错误而崩溃,don';我不理解logcat消息

Java Android应用程序因代码错误而崩溃,don';我不理解logcat消息,java,android,eclipse,Java,Android,Eclipse,我正在尝试为android编写这段源代码,它运行得非常完美,直到我将应用程序重构为另一个包名。包资源管理器中未显示任何错误,当我在调试模式下运行包资源管理器时,这是我在logcat中得到的结果: 09-04 21:57:07.544: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.dalimited.zs/.Snake } 09-04 21:57:07.683: DEBUG/AndroidRuntime(387): S

我正在尝试为android编写这段源代码,它运行得非常完美,直到我将应用程序重构为另一个包名。包资源管理器中未显示任何错误,当我在调试模式下运行包资源管理器时,这是我在logcat中得到的结果:

09-04 21:57:07.544: INFO/ActivityManager(58): Starting activity: Intent { cmp=com.dalimited.zs/.Snake } 09-04 21:57:07.683: DEBUG/AndroidRuntime(387): Shutting down VM 09-04 21:57:07.683: WARN/dalvikvm(387): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): FATAL EXCEPTION: main 09-04 21:57:07.734: ERROR/AndroidRuntime(387): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dalimited.zs/com.dalimited.zs.Snake}: android.view.InflateException: Binary XML file line #21: Error inflating class com.example.android.snake.SnakeView 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.os.Handler.dispatchMessage(Handler.java:99) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.os.Looper.loop(Looper.java:123) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread.main(ActivityThread.java:4627) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at java.lang.reflect.Method.invokeNative(Native Method) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at java.lang.reflect.Method.invoke(Method.java:521) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at dalvik.system.NativeStart.main(Native Method) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): Caused by: android.view.InflateException: Binary XML file line #21: Error inflating class com.example.android.snake.SnakeView 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.inflate(LayoutInflater.java:407) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.inflate(LayoutInflater.java:320) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.inflate(LayoutInflater.java:276) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.Activity.setContentView(Activity.java:1647) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at com.dalimited.zs.Snake.onCreate(Snake.java:50) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): ... 11 more 09-04 21:57:07.734: ERROR/AndroidRuntime(387): Caused by: java.lang.ClassNotFoundException: com.example.android.snake.SnakeView in loader dalvik.system.PathClassLoader[/data/app/com.dalimited.zs-1.apk] 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.createView(LayoutInflater.java:466) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 09-04 21:57:07.734: ERROR/AndroidRuntime(387): ... 20 more 09-04 21:57:07.544:INFO/ActivityManager(58):启动活动:Intent{cmp=com.dalimited.zs/.Snake} 09-04 21:57:07.683:DEBUG/AndroidRuntime(387):关闭虚拟机 09-04 21:57:07.683:WARN/dalvikvm(387):threadid=1:线程以未捕获异常退出(组=0x4001d800) 09-04 21:57:07.734:错误/AndroidRuntime(387):致命异常:主 09-04 21:57:07.734:ERROR/AndroidRuntime(387):java.lang.RuntimeException:无法启动活动组件信息{com.dalimited.zs/com.dalimited.zs.Snake}:android.view.InflateException:二进制XML文件行#21:错误膨胀类com.example.android.Snake.SnakeView 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.app.ActivityThread.access$2300(ActivityThread.java:125) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于android.os.Handler.dispatchMessage(Handler.java:99) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.os.Looper.loop(Looper.java:123)上 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于android.app.ActivityThread.main(ActivityThread.java:4627) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于java.lang.reflect.Method.invokenactive(本机方法) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于java.lang.reflect.Method.invoke(Method.java:521) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 09-04 21:57:07.734:错误/AndroidRuntime(387):在dalvik.system.NativeStart.main(本机方法) 09-04 21:57:07.734:错误/AndroidRuntime(387):由以下原因引起:android.view.InflateException:二进制XML文件行#21:错误膨胀类com.example.android.snake.SnakeView 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.view.LayoutInflater.rInflate(LayoutInflater.java:618) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.view.LayoutInflater.inflate(LayoutInflater.java:407) 09-04 21:57:07.734:错误/AndroidRuntime(387):在android.view.LayoutInflater.inflate(LayoutInflater.java:320) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.view.LayoutInflater.inflate(LayoutInflater.java:276) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:198) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于android.app.Activity.setContentView(Activity.java:1647) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于com.dalimited.zs.Snake.onCreate(Snake.java:50) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)上 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 09-04 21:57:07.734:错误/AndroidRuntime(387):。。。还有11个 09-04 21:57:07.734:错误/AndroidRuntime(387):由以下原因引起:java.lang.ClassNotFoundException:com.example.android.snake.SnakeView加载程序dalvik.system.PathClassLoader[/data/app/com.dalimited.zs-1.apk] 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于java.lang.ClassLoader.loadClass(ClassLoader.java:573) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):位于java.lang.ClassLoader.loadClass(ClassLoader.java:532) 09-04 21:57:07.734:ERROR/AndroidRuntime(387):在android.view.LayoutInflater.createView(LayoutInflater.java:466) 09-04 21:57:07.734:错误/AndroidRuntime(387):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565) 09-04 21:57:07.734:错误/AndroidRuntime(387):。。。20多
我的问题是:这只logcat告诉我什么?我应该在我的代码中查找我的问题?最后,是否有现成的信息可供学习如何阅读logcat?

在您将软件包更改为其他名称之前,请告诉我您的软件包是什么。因为我认为这个错误是由此产生的,我认为这是因为你的一个错误是找不到类。您还可以检查系统(Eclipse)为您的应用程序考虑的当前包名,如下所示:

  • Content ctx=getApplicationContext()
  • Application-app=ctx.getApplicationInfo()
  • Log.i(“标签”,“包名:”+app)
  • 我告诉您这样做是因为有时我们会更改应用程序的包名,但eclipse仍然只考虑旧的包名。我可能错了,但试试这个,我想这可能会奏效

    原因:android.view.InflateException:二进制XML文件行#21:错误膨胀类com.example.android.snake.SnakeView

    查看布局文件。您正在尝试创建自定义视图。您的SnakeView类是否扩展了View


    您可以参考此链接:

    ClassNotFoundError-项目类路径不包含新的包名,重构在IDE中无法正常工作。

    如果您的snake源代码来自android开发者页面。 用y更改第21行中的snake_layout.xml文件
    09-04 21:57:07.734: ERROR/AndroidRuntime(387): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dalimited.zs/com.dalimited.zs.Snake}: android.view.InflateException: Binary XML file line #21: Error inflating class com.example.android.snake.SnakeView