簡體   English   中英

在 android 中觸摸 EditText 時應用程序崩潰

[英]Application crashes when EditText is touched in android

EditText視圖為空時,我可以觸摸它並開始輸入數據。 但是當我在輸入一些數據時觸摸它時,應用程序崩潰,並給出以下堆棧跟蹤:

    E/InputEventReceiver: Exception dispatching input event.
    D/AndroidRuntime: Shutting down VM
    E/AndroidRuntime: FATAL EXCEPTION: main
        Process: com.example.bullscows, PID: 31754
        android.content.res.Resources$NotFoundException: Resource ID #0x0
            at android.content.res.ResourcesImpl.getValueForDensity(ResourcesImpl.java:293)
            at android.content.res.Resources.getDrawableForDensity(Resources.java:1022)
            at android.content.res.Resources.getDrawable(Resources.java:965)
            at android.content.Context.getDrawable(Context.java:605)
            at android.widget.Editor$InsertionPointCursorController.getHandle(Editor.java:5219)
            at android.widget.Editor$InsertionPointCursorController.show(Editor.java:5198)
            at android.widget.Editor.onTouchUpEvent(Editor.java:2247)
            at android.widget.TextView.onTouchEvent(TextView.java:9809)
            at android.view.View.dispatchTouchEvent(View.java:11891)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3024)
            at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2680)
            at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:449)
            at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1837)
            at android.app.Activity.dispatchTouchEvent(Activity.java:3405)
            at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
            at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:411)
            at android.view.View.dispatchPointerEvent(View.java:12135)
            at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5158)
            at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4968)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4547)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4513)
            at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4640)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4521)
            at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4697)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
            at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4547)
            at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4513)
            at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4521)
            at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
            at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7096)
            at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:7070)
            at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:7027)
            at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7226)
            at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:193)
            at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method)
            at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:182)
            at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7181)
            at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7250)
    E/AndroidRuntime:     at android.view.Choreographer$CallbackRecord.run(Choreographer.java:999)
            at android.view.Choreographer.doCallbacks(Choreographer.java:811)
            at android.view.Choreographer.doFrame(Choreographer.java:733)
            at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:985)
            at android.os.Handler.handleCallback(Handler.java:795)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:166)
            at android.app.ActivityThread.main(ActivityThread.java:6861)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:450)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)

我不確定我應該提供哪些代碼,因為我有幾個類和已經很復雜的邏輯,所以我認為我應該首先了解問題的真正含義。

這是EditText的 xml 代碼:

<EditText
    android:id="@+id/input"
    android:importantForAutofill="no"
    android:textSelectHandle="@null"
    android:visibility="visible"
    android:layout_width="180dp"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentTop="true"
    android:background="@drawable/rounded_field"
    android:inputType="number"
    android:textCursorDrawable="@null"
    android:padding="8dp"
    android:layout_marginTop="12dp"
    android:layout_marginBottom="16dp"
    android:textSize="22sp"
    tools:ignore="LabelFor" />

我知道了。 當我更改了這些行時:

android:textSelectHandle="@null"

android:textCursorDrawable="@null"

一切都恢復了正常。 我應該使用透明預設或其他東西而不是@nulls。

android:textSelectHandle="@null"的原因是,當您單擊可編輯文本中的某個點時,會出現一個指針。 將其設置為@null將阻止它出現,因為沒有與該參數對應的此類資源,這會導致程序崩潰。 將其設置為"@android:color/transparent"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM