根本问题:kotlin新建项目run报错:app:processDebugAndroidTestManifest FAILED android:exported <activity>

环境背景:

Android Studio 2020.3.1.23

本人完全不懂Java生态,也不懂Android

如下图:

创建没有按钮的项目就不会报错,图中项目就会报如下错误:

Task :app:processDebugAndroidTestManifest FAILED

android:exported needs to be explicitly specified for <activity>. Apps targeting Android 12 and higher are required to specify an explicit value for `android:exported` when the corresponding component has an intent filter defined

Execution failed for task ':app:processDebugAndroidTestManifest'.
> Manifest merger failed with multiple errors, see logs

等等等等。

 一开始报错buildTools版本错误时,切换到了30.0.2,不报了,可是这个错误怎么着都不行,网上一大堆说什么 activity标签加上exported属性,问题是本来就在!改成true也不行,改成false也不行!

最最最最坑爹的就是这个报错,我只顾着看红色报错,无意中,看到下面正常颜色的一句话:

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
Use '--warning-mode all' to show the individual deprecation warnings.

我就查了一下gradle是什么东西,大概浏览看懂了他的作用,大概像是前端的vite对于webpack一样的作用?替代manifest啊什么鬼东西的xml超级麻烦配置的方案。那我就去项目app目录下看了一下android.gradle文件,从中看到如下配置:

在我调查错误原因时,有印象看到过说31版太新,有一些不兼容的问题存在,便试着修改了一下这个配置,31改成30。

run!成功!!!

 需要说明一点,我一开始以为从工具栏File->Setting->Appearance&Behavior->System Settings->Android SDK中卸载31的,安装30的重新创建项目就可以。但不行!

重启IDE后以后SDK Platforms中31又会出现!这个我不知道为什么

所以虽然我不确定,但是以我的理解,那边只是管理整个环境中的包有哪些可以用,而这个android.gradle则是控制build或run时,用到哪些依赖包去创建项目或者运行项目的。

找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!

找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!

找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!

我对自己说。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
browserslist可以理解为一种浏览器兼容性配置工具,用于告诉工具应该支持哪些浏览器版本。而caniuse-lite是一个存储了各种浏览器及其版本之间兼容性数据的轻量级数据库。 通过使用browserslist,我们可以在项目中指定我们所希望的浏览器兼容性水平。我们可以将浏览器名称和版本号以适当的格式添加到配置文件中,例如package.json或.browserslistrc文件。browserslist使用这些配置信息来检查项目的用途并相应地编译代码,以确保最终生成的代码在特定浏览器中能够正常工作。 而caniuse-lite为browserslist提供了基础数据。caniuse-lite是一个基于caniuse.com网站上的数据进行压缩和优化的轻量级版本。它存储了关于各种CSS、HTML、JS特性在不同浏览器及其版本中的兼容性信息。当我们使用browserslist时,它会使用caniuse-lite数据来确定我们所指定的浏览器版本是否支持某些特定的功能,从而帮助我们生成相应的代码。 使用browserslist和caniuse-lite可以大大简化我们在开发过程中处理浏览器兼容性的任务。我们只需要指定一次我们的要求,然后工具就会帮助我们自动处理兼容性问题,减少我们在修改代码以适应不同浏览器时的工作量和出错的可能性。同时,caniuse-lite会定期更新兼容性数据,保证我们拥有最新的浏览器兼容性信息。这样,我们可以更加专注于业务逻辑的开发,而不必过多关注浏览器兼容性问题
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值