概述:
在一个Flutter工程中,引入一个第三方aar包之后进行编译,出现了“AAPT: error: style attribute ‘attr/windowActionBar (aka com.opun.flutter_easy_login_example:attr/windowActionBar)’ not found.”问题。
解决思路:
1.从报错的信息来看,是缺少了资源文件。一开始以为是引入的aar资源包缺失文件,于是检查了资源文件,发现资源文件是存在的;
2.紧接着,是不是由于SDK的版本问题,导致文件引用失败或者AAPT的问题,顺着这个思路,去度娘,发现网上还是有很多大神指出了这个问题:
既然是AAPT出现的问题,那直接关闭它吧(这个方法治标不治本):
在【根目录Project/gradle.properties】中添加:
android.enableAapt2=false
或者,有没有更彻底的方法,有的:
找根本问题:Android Studio 3.0 已不支持@开头使用android自带的属性,只要把@符号删掉即可。
解决方案:全局搜索【@android:attr/windowEnterAnimation】和【@android:attr/windowExitAnimation】找到相应的地方,【把@去除】即可。(全局搜索:【选中Project—>>>Find in path】;或者直接快捷键【Ctrl + Shift + F】)
这是网上提供的两种解决方案。
但是,和我遇到的问题还是有差别的:首先,使用了第一种方案,发现问题并未解决;其次,我的报错问题里面并没有@android问题。提供这两种思路,只是为大家提供一个思考的方向。回到刚刚开始的问题,所以,问题还是没有解决。
我的解决方法:
最终,通过度娘,还是找到了一个解决方法:
1.gradle文件中修改:
compileSdkVersion 修改为28
2.添加依赖:
implementation 'androidx.appcompat:appcompat:1.0.0-alpha1'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
3.重新sync一下,问题解决
总结:
至于最后一种解决方案为何解决了问题,我现在还不是很清楚,个人猜测是因为as版本升级了之后,原来的一些方法过时被删除放到appcompat中,所以appcompat需要重新引入。只是个人猜测,欢迎大家指出。
感谢大神: