集成wenchaojiang AndroidSwipeableCardStack库遇属性声明未找到错误
我之前也碰到过类似的自定义属性无法识别的情况,结合你给出的信息,给你几个具体的排查和解决步骤:
确认依赖引入的准确性
如果是通过远程仓库(比如JitPack)引入库,检查你的app/build.gradle里的依赖是否正确指定了版本,比如:implementation 'com.github.wenchaojiang:AndroidSwipeableCardStack:1.0.2'要是你是本地导入库模块,务必确保
settings.gradle里已经包含了该模块,并且app模块的依赖中添加了:implementation project(':cardstack')尝试替换XML命名空间
虽然你已经添加了xmlns:app="http://schemas.android.com/apk/res-auto",但有时候自动识别会出问题。可以试试用库的实际包名作为命名空间,比如在布局根节点添加:xmlns:card="http://schemas.android.com/apk/res/com.wenchao.cardstack"然后把属性改成
card:card_enable_loop="false"、card:card_enable_rotation="true"这种形式,看看是否能识别。清理缓存并重建项目
Android Studio的缓存有时候会导致资源识别异常,按以下步骤操作:- 点击顶部菜单栏的
Build->Clean Project - 然后执行
Build->Rebuild Project - 如果还是不行,试试
File->Invalidate Caches...,选择Invalidate and Restart
- 点击顶部菜单栏的
检查库的属性定义文件
确认你导入的库中存在res/values/attrs.xml文件,并且里面正确定义了这些属性:<declare-styleable name="CardStack"> <attr name="card_enable_loop" format="boolean" /> <attr name="card_enable_rotation" format="boolean" /> <attr name="card_gravity" format="enum"> <enum name="top" value="0" /> <enum name="center" value="1" /> </attr> <attr name="card_margin" format="dimension" /> <attr name="card_stack_size" format="integer" /> </declare-styleable>如果是本地导入的库,检查这个文件有没有被正确编译,有没有语法错误。
核对gradle版本兼容性
你使用的com.android.support:cardview-v7:27.1.1,要确保库的build.gradle里的compileSdkVersion、targetSdkVersion和你的app模块保持一致,避免因版本不匹配导致资源无法正常识别。
内容的提问来源于stack exchange,提问作者Subin Babu

