关于Android Studio3.2新建项目Android resource linking failed的问题
太长不看版:
- 留意build.gradle(app)文件里的minSdkVersion 、targetSdkVersion、compileSdkVersion三巨头有没有设置合适的API值,不要过大过小。
- targetSdkVersion最低参考:https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
今天在新建文档的时候突然发现新建的文档没有Build成功,试过重来也不行
Build日志上的报错位置和关键字样如下:
报错位置:
build:
关键字样:
Android resource linking failed
报错位置:
build:
Run build
Run tasks
:app:processDebugResources
Execute taskAction
关键字样:
com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failed
error: failed processing manifest.
Daemon: AAPT2 aapt2-3.2.0-4818971-windows Daemon #0
默认的MainActivity所继承的AppCompatActivity也有报错:
Cannot resolve symbol ‘AppCompatActivity’
当时只顾着留意标红的MainActibity.java文件,没有特别去留意其他没标红的文件,在网上搜索也没有合适的解决办法。
找了半天才发现原来是一开始的build.gradle(app)文件设置错了。把targetSdkVersion设置成了21,但在2018年下半年后google就不允许设置低于26的版本了,把它改回26以上,对应的compileSdkVersion也改上相同或更高的数值,重新Build一次就好了。
targetSdkVersion下显示的提示内容(已翻译):
谷歌Play要求应用程序的API级别为26或更高。
从2018年下半年开始,谷歌将新应用程序和应用程序更新的目标定为APl 26级或更高
将您的应用程序配置为以最近的API级别为目标,可以确保用户从显著的安全性和性能改进中获益,同时仍然允许您的应用程序运行在较早的Android版本(minSdkVersion)上,
要更新你的targetSdkVersion,请按照“满足目标APl级别的谷歌播放要求”中的步骤,
https://developer.android.com/distribute/best-practices/develop/target-sdk.html
lssue id: ExpiredTargetSdkVersion
更多信息:
https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
https://support.google.com/googleplay/android-developer/answer/113469#targetsdk
https://developer.android.com/distribute/best-practices/develop/target-sdk.html
总结
- 以后出现类似这种问题首先排查gradle文件有没有配置错误
- 对gradle文件里的参数还不够熟悉
- 多了解现在及未来编码会被取缔使用的技术,做好版本更迭。