You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Android中点击EditText触发的「!!! FAILED BINDER TRANSACTION !!!」错误?

Android EditText点击报错及无法获取输入内容问题解决

问题概述

开发Java Android应用时遇到两个核心问题:

  • 点击输入URL的EditText时触发DeadObjectException和FAILED BINDER TRANSACTION错误,输入法进程直接崩溃
  • 无法获取EditText的输入内容,且Log.v()无输出

错误日志

!!! FAILED BINDER TRANSACTION !!!  (parcel size = 112)
2023-05-15 18:36:49.421 25271-25271 InputMetho...ionWrapper com.example.itube                    W  IME died

android.os.DeadObjectException: Transaction failed on small parcel; remote process probably died
    at android.os.BinderProxy.transactNative(Native Method)
    at android.os.BinderProxy.transact(BinderProxy.java:571)
    at com.android.internal.view.IInputMethodSession$Stub$Proxy.viewClicked(IInputMethodSession.java:341)
    at android.view.inputmethod.InputMethodSessionWrapper.viewClicked(InputMethodSessionWrapper.java:119)
    at android.view.inputmethod.InputMethodManager.viewClicked(InputMethodManager.java:2284)
    at android.widget.TextView.viewClicked(TextView.java:13303)
    at android.widget.TextView.onTouchEvent(TextView.java:11212)
    at android.view.View.dispatchTouchEvent(View.java:14540)

相关代码

//       get video url
        if (binding.url.getText() != null) {
            videoUrl = binding.url.getText().toString();
        }

//        play button
        binding.playBtn.setOnClickListener(view -> {
            Log.v("url pre", videoUrl);
//            Intent toPlay = new Intent(getApplicationContext(), PlayActivity.class);
//            toPlay.putExtra("url",  videoUrl);
//            startActivity(toPlay);
        });

解决步骤

1. 修复EditText内容获取逻辑

当前代码在初始化阶段就获取EditText内容,此时用户还未输入任何内容,导致videoUrl始终为初始空值。需将内容获取逻辑移至按钮点击事件内,确保每次点击都能拿到最新输入:

// play button
binding.playBtn.setOnClickListener(view -> {
    // 点击时实时获取EditText最新内容
    String videoUrl = "";
    if (binding.url.getText() != null) {
        videoUrl = binding.url.getText().toString().trim();
    }
    Log.v("url pre", videoUrl);
    // 恢复Intent跳转逻辑
    Intent toPlay = new Intent(getApplicationContext(), PlayActivity.class);
    toPlay.putExtra("url", videoUrl);
    startActivity(toPlay);
});

2. 解决EditText点击报错问题

该错误由输入法(IME)进程崩溃导致,可通过以下方式排查修复:

  • 切换输入法:在系统设置中切换至系统默认输入法(如Google拼音),排除第三方输入法的适配问题
  • 优化EditText属性:在布局文件中为EditText配置适合URL输入的属性,避免输入法适配异常:
    <EditText
        android:id="@+id/url"
        android:inputType="textUri|textNoSuggestions"
        ... />
    
  • 清理应用缓存:清除当前应用的缓存和数据,重启应用后再测试

3. 恢复Log.v()输出

检查Android Studio Logcat的配置项:

  • 确认顶部进程选择为当前应用(com.example.itube)
  • 将日志级别切换为Verbose(V)
  • 可在搜索框输入url pre过滤指定标签的日志,快速定位输出

内容的提问来源于stack exchange,提问作者Wonster

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 04:52:32