我目前正在构建一个库项目,但我遇到了一些XML属性问题。在库模块中,我创建了declare-styleable in attrs.xml
<resources>
<declare-styleable name="betterTextViewAttrs">
<attr name="typefaceAsset" format="string"/>
<attr name="scaleWithinBounds" format="boolean"/>
</declare-styleable>
我想在项目的样本布局中引用attrs。
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
xmlns:bettertv="http://schemas.android.com/apk/res-auto"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.virtualprodigy.bettertextviewsample.MainActivity">
<com.virtualprodigy.bettertextview.BetterTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
bettertv:typefaceAsset="dancing _script.ttf"
bettertv:scaleWithinBounds="false"
app:layout_constraintBottom_toBottomOf="@+id/activity_main"
app:layout_constraintLeft_toLeftOf="@+id/activity_main"
app:layout_constraintRight_toRightOf="@+id/activity_main"
app:layout_constraintTop_toTopOf="@+id/activity_main" />
但由于某种原因,xmlns:bettertv="http://schemas.android.com/apk/res-auto"
不起作用。编译时出现以下错误。
Error:(11) No resource identifier found for attribute 'typefaceAsset' in package 'com.virtualprodigy.bettertextviewsample'
完整的源代码可以在GitHub上找到。任何帮助表示赞赏。
答案 0 :(得分:0)
在盯着我的项目后,我意识到了这个问题。即使Android Studio通过GUI为您创建库项目,它也不会自动在compile project(':bettertextview')
文件中添加build.gradle
。更新完全解决了这个问题。