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

完成Android基础02.3隐式Intent实验出现报错及闪退问题求解

修复方案1:解决启动闪退问题

崩溃的核心原因是类型不匹配:XML布局中你定义的三个输入控件是TextView类型,但Java代码中你将其强转为EditText类型,类型转换失败触发RuntimeException直接闪退。
修改方法:将activity_main.xml中id为website_edittext、location_edittext、share_edittext的三个<TextView>标签全部替换为<EditText>:

<!-- 网站输入框 -->
<EditText
    android:id="@+id/website_edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/edittext_uri" />

<!-- 位置输入框 -->
<EditText
    android:id="@+id/location_edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/edittext_loc" />

<!-- 分享内容输入框 -->
<EditText
    android:id="@+id/share_edittext"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/edittext_share" />

建议将原来的android:text属性替换为android:hint,符合输入框的交互逻辑,默认显示提示文字,用户输入时自动清空


修复方案2:解决清单文件声明提示

该提示是Android 11(API级别30)引入的包可见性限制导致:你调用intent.resolveActivity()查询可处理隐式Intent的应用时,系统默认不会返回第三方应用信息,需要在AndroidManifest.xml中添加<queries>声明,该标签与<application>标签同级:

<queries>
    <!-- 匹配网页跳转意图 -->
    <intent>
        <action android:name="android.intent.action.VIEW" />
    </intent>
    <!-- 匹配位置跳转意图 -->
    <intent>
        <action android:name="android.intent.action.VIEW" />
        <data android:scheme="geo" />
    </intent>
    <!-- 匹配文本分享意图 -->
    <intent>
        <action android:name="android.intent.action.SEND" />
        <data android:mimeType="text/plain" />
    </intent>
</queries>

添加完成后提示消失,Android 11及以上版本设备也能正常识别可处理对应意图的应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 14:06:03