当我把安卓SDK从30升到32本以为直接打包就可以搞定的时候,却发现报错了,而且也没法build和run了,直接提示“Installed Build Tools revision 32.0.0 is corrupted. Remove and install again using the SDK Manager.”!
找资料说是SDK里面少了dx(Windows叫dx.bat)和dx.jar这两个文件,解决办法很简单,将d8和d8.jar分别复制一份然后把d8改名dx即可。
改完要是右上角运行那里app的安卓logo显示“x”打开Configurations还提示“Error: Please select Android SDK”,就点File->Invalidate caches勾选后点“Invalidate and Restart”即可解决问题。
需要注意的是使用Android SDK Platform 32在AndroidManifest.xml配置文件中使用到intent得在activity加上“android:exported=”true””不然会报“Manifest merger failed : 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. See https://developer.android.com/guide/topics/manifest/activity-element#exported for details.”。
其实android:exported 并不是Android 12的新属性,在以前的版本中就已经有它了。它是Android中的四大组件Activity、Service、Provider、Receiver中都会有的一个属性。在Activity中该属性用来标示:“当前Activity是否可以被另一个Application的组件启动:true允许被启动;false不允许被启动”。如果它写在service中并且为false则表示则该服务不能够跨进程使用。它的作用就是判断是否支持其它应用调用当前组件,在Android 12中他会默认添加并且默认为true,所以如果是新建项目就不会报这个问题。
关注我带你实战解决更多问题。
历史上的今天:
展开阅读全文