【问题标题】:Force close error every time layout is changed每次更改布局时强制关闭错误
【发布时间】:2012-07-22 15:52:45
【问题描述】:

每次我不时弄乱相对布局的定位时,我的应用程序强制关闭。我必须任意不断地重新定位它们才能使应用程序再次工作。或者将它们全部放在最左上角,然后重新排列。

我正在使用 Eclipse。

为什么会这样?有什么办法可以避免这种情况吗?

[编辑]

07-22 21:39:22.042: D/dalvikvm(520): GC_EXTERNAL_ALLOC 释放 291K, 52% 免费2718K/5639K,外接741K/1038K,暂停51ms

07-22 21:39:22.422: D/AndroidRuntime(520): 关闭 VM 07-22 21:39:22.432: W/dalvikvm(520): threadid=1: 线程退出 未捕获的异常(组=0x40015560)

07-22 21:39:22.443:E/AndroidRuntime(520):致命异常:主要 07-22 21:39:22.443: E/AndroidRuntime(520): java.lang.RuntimeException: 无法开始活动

组件信息{com.android.tapme/com.android.tapme.TapMe}: java.lang.ClassCastException: android.widget.TextView

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread.access$1500(ActivityThread.java:117)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.os.Handler.dispatchMessage(Handler.java:99)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.os.Looper.loop(Looper.java:123)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread.main(ActivityThread.java:3683)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 java.lang.reflect.Method.invokeNative(Native Method)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 java.lang.reflect.Method.invoke(Method.java:507)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 dalvik.system.NativeStart.main(Native Method)

07-22 21:39:22.443: E/AndroidRuntime(520): 由: java.lang.ClassCastException: android.widget.TextView

07-22 21:39:22.443: E/AndroidRuntime(520): 在 com.android.tapme.TapMe.onCreate(TapMe.java:26)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)

07-22 21:39:22.443: E/AndroidRuntime(520): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611) 07-22 21:39:22.443: E/AndroidRuntime(520): ... 11 更多

[编辑]

我随机编辑了布局,终于让它工作了。然后我添加了一个进度条,瞧!再次强制关闭错误。这是日志。

07-26 00:06:57.445: D/AndroidRuntime(876): 关闭虚拟机

07-26 00:06:57.465: W/dalvikvm(876): threadid=1: 线程以未捕获的异常退出 (group=0x40015560)

07-26 00:06:57.486:E/AndroidRuntime(876):致命异常:主要

07-26 00:06:57.486:E/AndroidRuntime(876):java.lang.RuntimeException:无法实例化活动 ComponentInfo{com.android.tapme/com.android.tapme.TapMe}:java.lang。空指针异常

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)

07-26 00:06:57.486: E/AndroidRuntime(876): at android.app.ActivityThread.access$1500(ActivityThread.java:117)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.os.Handler.dispatchMessage(Handler.java:99)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.os.Looper.loop(Looper.java:123)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.ActivityThread.main(ActivityThread.java:3683)

07-26 00:06:57.486: E/AndroidRuntime(876): at java.lang.reflect.Method.invokeNative(Native Method)

07-26 00:06:57.486: E/AndroidRuntime(876): at java.lang.reflect.Method.invoke(Method.java:507)

07-26 00:06:57.486: E/AndroidRuntime(876): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)

07-26 00:06:57.486: E/AndroidRuntime(876): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)

07-26 00:06:57.486: E/AndroidRuntime(876): at dalvik.system.NativeStart.main(Native Method)

07-26 00:06:57.486: E/AndroidRuntime(876): Caused by: java.lang.NullPointerException

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.Activity.findViewById(Activity.java:1647)

07-26 00:06:57.486: E/AndroidRuntime(876): at com.android.tapme.TapMe.(TapMe.java:17)

07-26 00:06:57.486: E/AndroidRuntime(876): at java.lang.Class.newInstanceImpl(Native Method)

07-26 00:06:57.486: E/AndroidRuntime(876): at java.lang.Class.newInstance(Class.java:1409)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1021)

07-26 00:06:57.486: E/AndroidRuntime(876): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)

07-26 00:06:57.486: E/AndroidRuntime(876): ... 11 更多

【问题讨论】:

    标签: android android-layout android-relativelayout eclipse-adt


    【解决方案1】:

    在RelativeLayout中,所有子元素都相对放置。

    这是一个代码 sn-p。

    android:layout_below="@id/elementOne"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/elementTwo"
    

    所以,弄乱其中一个,你就弄乱了一切。

    【讨论】:

    • 如何回答我的问题?我知道职位会改变。为什么会导致 FATAL EXCEPTION?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多