关于Android(安卓)Studio3.2新建项目Android(安卓)resource linking failed的问题

太长不看版

  1. 留意build.gradle(app)文件里的minSdkVersion 、targetSdkVersion、compileSdkVersion三巨头有没有设置合适的API值,不要过大过小。
  2. targetSdkVersion最低参考:https://support.google.com/googleplay/android-developer/answer/113469#targetsdk

今天在新建文档的时候突然发现新建的文档没有Build成功,试过重来也不行
Build日志上的报错位置和关键字样如下:

报错位置:build:关键字样:Android resource linking failed报错位置:build:Run buildRun tasks:app:processDebugResourcesExecute taskAction关键字样:com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource linking failederror: 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

总结

  1. 以后出现类似这种问题首先排查gradle文件有没有配置错误
  2. 对gradle文件里的参数还不够熟悉
  3. 多了解现在及未来编码会被取缔使用的技术,做好版本更迭。