android – 为什么键盘滑倒我的应用程序?

android – 为什么键盘滑倒我的应用程序?,第1张

概述如果我实际滑出我的Moto Droid A855上的键盘,它会崩溃我的测试应用程序,堆栈跟踪粘贴在下面.我不明白为什么? 此外,如果我用键盘启动我的应用程序,我的应用程序在启动时立即崩溃. 该应用程序包含一个活动,其中包含一个viewflipper作为主视图布局.取景器包含两个线性布局… 堆栈跟踪: 06-10 21:10:17.652 E/AndroidRuntime( 3785): Uncau 如果我实际滑出我的Moto DroID A855上的键盘,它会崩溃我的测试应用程序,堆栈跟踪粘贴在下面.我不明白为什么?

此外,如果我用键盘启动我的应用程序,我的应用程序在启动时立即崩溃.

该应用程序包含一个活动,其中包含一个vIEwflipper作为主视图布局.取景器包含两个线性布局…

堆栈跟踪:

06-10 21:10:17.652 E/AndroIDRuntime( 3785): Uncaught handler: thread main exiting due to uncaught exception06-10 21:10:17.668 E/AndroIDRuntime( 3785): java.lang.IllegalArgumentException: Receiver not registered: androID.Widget.VIEwFlipper@447af0b806-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread$PackageInfo.forgetReceiverdispatcher(ActivityThread.java:667)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ApplicationContext.unregisterReceiver(ApplicationContext.java:747)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.content.Contextwrapper.unregisterReceiver(Contextwrapper.java:321)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.Widget.VIEwFlipper.onDetachedFromWindow(VIEwFlipper.java:104)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEw.dispatchDetachedFromWindow(VIEw.java:5835)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwGroup.dispatchDetachedFromWindow(VIEwGroup.java:1076)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwGroup.dispatchDetachedFromWindow(VIEwGroup.java:1074)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwGroup.dispatchDetachedFromWindow(VIEwGroup.java:1074)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwGroup.dispatchDetachedFromWindow(VIEwGroup.java:1074)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwRoot.dispatchDetachedFromWindow(VIEwRoot.java:1570)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwRoot.doDIE(VIEwRoot.java:2556)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.VIEwRoot.dIE(VIEwRoot.java:2526)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.WindowManagerImpl.removeVIEwImmediate(WindowManagerImpl.java:218)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.vIEw.Window$LocalWindowManager.removeVIEwImmediate(Window.java:436)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3498)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread.handle@R_393_4404@Activity(ActivityThread.java:3599)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread.access00(ActivityThread.java:119)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1867)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.os.Handler.dispatchMessage(Handler.java:99)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.os.Looper.loop(Looper.java:123)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at androID.app.ActivityThread.main(ActivityThread.java:4363)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at java.lang.reflect.Method.invokeNative(Native Method)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at java.lang.reflect.Method.invoke(Method.java:521)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:618)06-10 21:10:17.668 E/AndroIDRuntime( 3785):     at dalvik.system.NativeStart.main(Native Method)06-10 21:10:17.684 I/Process ( 1017): Sending signal. PID: 3785 SIG: 3

编辑:从主要活动添加XML布局和相关片段.

整个XML布局文件

<?xml version="1.0" enCoding="utf-8"?><VIEwFlipper        xmlns:androID="http://schemas.androID.com/apk/res/androID"        androID:ID="@+ID/vFlipper"        androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content">                <!--  linear Layout 1: messages and overvIEw.  -->                <linearLayout                    androID:orIEntation="vertical"                    androID:layout_wIDth="fill_parent"                    androID:layout_height="fill_parent"                    >                <tableRow androID:ID="@+ID/tableRow01" androID:layout_wIDth="fill_parent" androID:layout_height="wrap_content">                <TextVIEw                        androID:text="Connection info"                        androID:ID="@+ID/tvCon1"                        androID:layout_wIDth="fill_parent"                        androID:layout_height="wrap_content"                        androID:background="#F0F0F0"                        androID:textcolor="#FF0000"                        />                </tableRow>                <ScrollVIEw                        androID:ID="@+ID/ScrollVIEw01"                        androID:layout_wIDth="fill_parent"                        androID:layout_height="fill_parent">                                <TextVIEw                                          androID:ID="@+ID/tvMessages"                                    androID:layout_wIDth="fill_parent"                                    androID:layout_height="fill_parent"                                    androID:text=""                                    />                </ScrollVIEw>        </linearLayout>        <!--  linear Layout 2: settings -->        <linearLayout                    androID:orIEntation="vertical"                    androID:layout_wIDth="fill_parent"                    androID:layout_height="fill_parent"                    >                <tableRow                        androID:ID="@+ID/tableRow03"                        androID:layout_wIDth="fill_parent"                        androID:layout_height="wrap_content">                                <TextVIEw                                androID:text="hello world"                                androID:ID="@+ID/asdfasdf2"                                androID:layout_wIDth="fill_parent"                                androID:layout_height="wrap_content"                                />                </tableRow>                        </linearLayout></VIEwFlipper>

主要活动代码片段

/** * Attempt (not currently working) to work around this BUG: http://code.Google.com/p/androID/issues/detail?ID=6191 * Todo: make it work. */@OverrIDepublic voID onDetachedFromWindow() {        Log.d("Dash","OnDetachedFromWindow()");        try {        super.onDetachedFromWindow();    }    catch (Exception e) {        VIEwFlipper v = (VIEwFlipper)findVIEwByID(R.ID.vFlipper);        if (v != null) {                Log.d("Dash","De-BUG hit. e=" + e.getMessage());                v.stopFlipPing();        }    }}
解决方法 要解决这个问题,你必须

>定义一个名为MyVIEwFlipper的新类,它覆盖VIEwFlipper(见下文)
>引用你以前引用过VIEwFlipper的新类
>定义你的班级和布局,如下图所示:

新类叫MyVIEwFlipper.包含以下内容:

package com.gtosoft.dash; // change this to match your own app. import androID.content.Context;import androID.util.AttributeSet;import androID.util.Log;import androID.Widget.VIEwFlipper;public class MyVIEwFlipper extends VIEwFlipper {    public MyVIEwFlipper(Context context,AttributeSet attrs) {        super(context,attrs);    }    @OverrIDe    protected voID onDetachedFromWindow() {        try{            super.onDetachedFromWindow();        }catch(Exception e) {            Log.d("MyVIEwFlipper","Stopped a vIEwflipper crash");            stopFlipPing();        }    }}

现在要使用这个“固定”版本的VIEwFlipper,你必须在xml布局中引用它.由于它基本上是一个“自定义视图”,您必须完全限定MyVIEwFlipper的包路径,如下所示:

<com.gtosoft.dash.MyVIEwFlipper    xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/vFlipper"    androID:layout_wIDth="wrap_content"    androID:layout_height="wrap_content">    (insert all the other old layout code here)</com.gtosoft.dash.MyVIEwFlipper>

现在应用程序不再在键盘幻灯片事件中崩溃,或者应用程序是否已经从幻灯片开始.在日志中查找:

06-11 20:08:15.811 D/MyVIEwFlipper( 6106): Stopped a vIEwflipper crash

信用:http://code.google.com/p/android/issues/detail?id=6191

总结

以上是内存溢出为你收集整理的android – 为什么键盘滑倒我的应用程序?全部内容,希望文章能够帮你解决android – 为什么键盘滑倒我的应用程序?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1131850.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存