突然我的android应用程序崩溃了

时间:2012-10-23 22:19:50

标签: android android-layout

对不起家伙们提出新手问题。我是android新手,正在努力在新应用程序中设置一些登录系统。一切都很好(很长一段时间后),我在主页面的菜单中有一个登录按钮,这只是一个空的" hello world"默认活动。然后我决定删除" hello world"文本视图,我试图立即运行它,应用程序崩溃与null异常。我正在疯狂地做ctrl + z,但是应用程序一直在崩溃。 我完全不了解LogCat:

  

10-24 00:10:17.982:I / ActivityManager(59):开始活动:意图{   act = android.intent.action.MAIN cat = [android.intent.category.LAUNCHER]   FLG = 0x10200000   cmp = com.application.mySoSpecialApplication / .MainActivity} 10-24   00:10:18.002:W / WindowManager(59):HistoryRecord {4505f618   com.application.mySoSpecialApplication / .MainActivity}创建失败   起始窗口10-24 00:10:18.002:W / WindowManager(59):   java.lang.RuntimeException:二进制XML文件行#25:您必须提供   layout_height属性。 10-24 00:10:18.002:W / WindowManager(59):     在   android.content.res.TypedArray.getLayoutDimension(TypedArray.java:491)   10-24 00:10:18.002:W / WindowManager(59):at   android.view.ViewGroup $ LayoutParams.setBaseAttributes(ViewGroup.java:3593)   10-24 00:10:18.002:W / WindowManager(59):at   android.view.ViewGroup $ MarginLayoutParams。(ViewGroup.java:3672)   10-24 00:10:18.002:W / WindowManager(59):at   android.widget.LinearLayout $的LayoutParams。(LinearLayout.java:1395)   10-24 00:10:18.002:W / WindowManager(59):at   android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:1321)   10-24 00:10:18.002:W / WindowManager(59):at   android.widget.LinearLayout.generateLayoutParams(LinearLayout.java:45)   10-24 00:10:18.002:W / WindowManager(59):at   android.view.LayoutInflater.rInflate(LayoutInflater.java:620)10-24   00:10:18.002:W / WindowManager(59):at   android.view.LayoutInflater.inflate(LayoutInflater.java:407)10-24   00:10:18.002:W / WindowManager(59):at   android.view.LayoutInflater.inflate(LayoutInflater.java:320)10-24   00:10:18.002:W / WindowManager(59):at   android.view.LayoutInflater.inflate(LayoutInflater.java:276)10-24   00:10:18.002:W / WindowManager(59):at   com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:2165)   10-24 00:10:18.002:W / WindowManager(59):at   com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:2220)   10-24 00:10:18.002:W / WindowManager(59):at   com.android.internal.policy.impl.PhoneWindow.getDecorView(PhoneWindow.java:1407)   10-24 00:10:18.002:W / WindowManager(59):at   com.android.internal.policy.impl.PhoneWindowManager.addStartingWindow(PhoneWindowManager.java:894)   10-24 00:10:18.002:W / WindowManager(59):at   com.android.server.WindowManagerService $ H.handleMessage(WindowManagerService.java:9007)   10-24 00:10:18.002:W / WindowManager(59):at   android.os.Handler.dispatchMessage(Handler.java:99)10-24   00:10:18.002:W / WindowManager(59):at   android.os.Looper.loop(Looper.java:123)10-24 00:10:18.002:   W / WindowManager(59):at   com.android.server.WindowManagerService $ WMThread.run(WindowManagerService.java:570)   10-24 00:10:18.042:I / ActivityManager(59):启动proc   com.application.mySoSpecialApplication for activity   com.application.mySoSpecialApplication / .MainActivity:pid = 463   uid = 10036 gids = {3003} 10-24 00:10:18.272:D / AndroidRuntime(463):   关闭VM 10-24 00:10:18.272:W / dalvikvm(463):threadid = 1:   线程退出与未捕获的异常(组= 0x4001d800)10-24   00:10:18.292:E / AndroidRuntime(463):致命异常:主要10-24   00:10:18.292:E / AndroidRuntime(463):java.lang.RuntimeException:   无法实例化应用程序   com.application.mySoSpecialApplication.mySoSpecialApplicationApplication:   java.lang.NullPointerException 10-24 00:10:18.292:   E / AndroidRuntime(463):at   android.app.ActivityThread $ PackageInfo.makeApplication(ActivityThread.java:649)   10-24 00:10:18.292:E / AndroidRuntime(463):at   android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232)   10-24 00:10:18.292:E / AndroidRuntime(463):at   android.app.ActivityThread.access $ 3000(ActivityThread.java:125)10-24   00:10:18.292:E / AndroidRuntime(463):at   android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2071)   10-24 00:10:18.292:E / AndroidRuntime(463):at   android.os.Handler.dispatchMessage(Handler.java:99)10-24   00:10:18.292:E / AndroidRuntime(463):at   android.os.Looper.loop(Looper.java:123)10-24 00:10:18.292:   E / AndroidRuntime(463):at   android.app.ActivityThread.main(ActivityThread.java:4627)10-24   00:10:18.292:E / AndroidRuntime(463):at   java.lang.reflect.Method.invokeNative(Native Method)10-24   00:10:18.292:E / AndroidRuntime(463):at   java.lang.reflect.Method.invoke(Method.java:521)10-24 00:10:18.292:   E / AndroidRuntime(463):at   com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)   10-24 00:10:18.292:E / AndroidRuntime(463):at   com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)10-24   00:10:18.292:E / AndroidRuntime(463):at   dalvik.system.NativeStart.main(Native Method)10-24 00:10:18.292:   E / AndroidRuntime(463):引起:java.lang.NullPointerException 10-24   00:10:18.292:E / AndroidRuntime(463):at   android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90)   10-24 00:10:18.292:E / AndroidRuntime(463):at   com.application.mySoSpecialApplication.mySoSpecialApplicationApplication。(mySoSpecialApplicationApplication.java:14)   10-24 00:10:18.292:E / AndroidRuntime(463):at   java.lang.Class.newInstanceImpl(Native Method)10-24 00:10:18.292:   E / AndroidRuntime(463):at   java.lang.Class.newInstance(Class.java:1429)10-24 00:10:18.292:   E / AndroidRuntime(463):at   android.app.Instrumentation.newApplication(Instrumentation.java:957)   10-24 00:10:18.292:E / AndroidRuntime(463):at   android.app.Instrumentation.newApplication(Instrumentation.java:942)   10-24 00:10:18.292:E / AndroidRuntime(463):at   android.app.ActivityThread $ PackageInfo.makeApplication(ActivityThread.java:644)   10-24 00:10:18.292:E / AndroidRuntime(463):... 11更多10-24   00:10:18.312:W / ActivityManager(59):强制完成活动   com.application.mySoSpecialApplication / .MainActivity 10-24   00:10:18.968:W / ActivityManager(59):活动暂停超时   HistoryRecord {4505f618   com.application.mySoSpecialApplication / .MainActivity} 10-24   00:10:21.322:I / Process(463):发送信号。 PID:463 SIG:9 10-24   00:10:21.352:I / ActivityManager(59):进程   com.application.mySoSpecialApplication(pid 463)已经死亡。 10-24   00:10:21.383:W / InputManagerService(59):窗口已经聚焦,   无视焦点增益:   com.android.internal.view.IInputMethodClient$Stub$Proxy@44fc1780 10-24   00:10:29.087:W / ActivityManager(59):活动销毁超时   HistoryRecord {4505f618   com.application.mySoSpecialApplication / .MainActivity}

也许你们其中一个人会弄清问题在哪里。非常感谢你。

3 个答案:

答案 0 :(得分:2)

这里有一些有趣的事情:

W / WindowManager(59):java.lang.RuntimeException:二进制XML文件行#25:您必须提供layout_height属性。 1

您必须在布局视图中指定layout_height,必须指定

答案 1 :(得分:1)

我猜你错过了你应该为某些View定义的属性。

所以,对于夸大的XML布局(我在setConentView(R.layout.this_one)方法某处onCreate()时你膨胀的那个),只需检查是否缺少android:layout_height="wrap_content"。如果是这样,请添加它。这可以解决您的问题。

  

二进制XML文件行#25:您必须提供layout_height属性。

答案 2 :(得分:0)

出现运行时错误,在logcat中查找单词引起:。 这有助于您轻松找到错误。

在你的情况下 - 请看下面的logCat ......

00:10:18.292: E/AndroidRuntime(463): Caused by: java.lang.NullPointerException 
10-24 00:10:18.292: E/AndroidRuntime(463): at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90) 
10-24 00:10:18.292: E/AndroidRuntime(463): at com.application.mySoSpecialApplication.mySoSpecialApplicationApplication.(mySoSpecialApplicationApplication.java:14)

Ypu会在(mySoSpecialApplicationApplication.java:14)的第14行发现由 getContentResolver 引起的运行时错误
所以在这里你成功找到了错误。

之后再看 yugidroid 的解释 这对你有帮助。

我猜你错过了一个你应该定义到某个View的属性。 因此,对于夸大的XML布局(当你在onCreate()方法的某个地方使用setConentView(R.layout.this_one)时膨胀的那个,我猜)只是检查是否缺少android:layout_height =“wrap_content”。如果是这样,请添加它。这应该解决你的问题。     二进制XML文件行#25:您必须提供layout_height属性。