本文主要是介绍根本问题: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时,用到哪些依赖包去创建项目或者运行项目的。
找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!
找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!
找这类错误一定要记住,先把出错的模块执行流程搞清楚!!!
我对自己说。
这篇关于根本问题:kotlin新建项目run报错:app:processDebugAndroidTestManifest FAILED android:exported <activity>的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!