`Activity supporting ACTION_VIEW is not exported `解决方法

“Activity supporting ACTION_VIEW is not exported”
最近在读郭霖先生的《第一行代码Android》(第三版)的时候遇到了个问题。
在读到第三章3.3.3小节 更多隐式intent的用法 这一段的时候做了几个小实验,其中在AndroidMainfest.xml中修改ThirdActivity的注册信息时系统报了这么一个错误:Activity supporting ACTION_VIEW is not exported
提前说明,我用的Android Studio和书上用的Android Studio版本不同,我用的是官网上找到的最新版。
遇到问题解决问题嘛,我搜了这个问题去网上搜,好家伙,清一色的回答几乎都是解决这么一个问题的:Activity supporting ACTION_VIEW is not set as BROWSABLE
这个问题书上是有答案的:

由于AndroidStudio认为所有能够响应ACTION_VIEW的Activity都应该加上BROWSABLE的category,否则就会给出一段警告提醒。加上BROWSABLE的category是为了实现deep link功能,和我们目前学习的东西无关,所以这里直接在标签上使用tools:ignore属性将警告忽略即可。

书上源码:

<activity android:name=".ThirdActivity">
<intent-filter tools:ignore="AppLinkUrlError">
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="https" />
</intent-filter>
</activity>

一个搜这个Activity supporting ACTION_VIEW is not exported 问题解决方法的网页下面全是另一个问题的解决方法。
我。。。。
这块贴解决问题的方法:
首先,因为新版的Android Studio有这么一个标签:android:exported,这个标签的主要作用是:是否支持其它应用调用当前组件。所以一般来说这个标签值为ture的时候应该是在应用程序的主Activity上设置,其余Activity都应该被设置为false。
但这个小实验的目的是为了让ThirdActivity像浏览器一样,成为一个能够响应一个打开网页的Intent。所以这里必须改为true。代码如下:

<activity
            android:name=".ThirdActivity"
            android:exported="true">
            <intent-filter tools:ignore="AppLinkUrlError">
                <action android:name="android.intent.action.VIEW"/>
                <category android:name="android.intent.category.DEFAULT"/>
                <data android:scheme="https"/>
            </intent-filter>
        </activity>

这样,就可以运行出书上的效果了,运行结果:
在这里插入图片描述
PS:我一般是不怎么发博客的,但这个问题的解决过程属实有些曲折,这个网上的答案也过于不靠谱了些。驴头不对马嘴了属于是。。。
另外,一起读这本书的兄弟们,你可以不关注,给个赞不过分吧?求赞。

  • 62
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

骑马客京华

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值