在将supportlibs更新为27.0.2并将compileVersion更新为27
后,我得到以下错误消息Error:(252, 5) Attribute "font" already defined with incompatible format.
> /home/ralfi/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.1.aar/644e31926a52609e6fffe47c9016abcc/res/values/values.xml
> Error:(252, 5) Attribute "font" already defined with incompatible
> format. Error:(252, 5) Original attribute defined here.
> /home/ralfi/ProjectFolder/android-example/app/build/intermediates/res/merged/internal/debug/values/values.xml
> Error:(631) Attribute "font" already defined with incompatible format.
> Error:(607) Original attribute defined here.
和此:
> Error:java.util.concurrent.ExecutionException:
> com.android.ide.common.process.ProcessException: Error while executing
> process /opt/sdk/build-tools/26.0.2/aapt with arguments {package -f
> --no-crunch -I /opt/sdk/platforms/android-27/android.jar -M /home/ralfi/ProjectFolder/android-example/build/intermediates/manifests/full/internal/debug/AndroidManifest.xml
> -S /home/ralfi/ProjectFolder/android-example/build/intermediates/res/merged/internal/debug
> -m -J /home/ralfi/ProjectFolder/android-example/build/generated/source/r/internal/debug
> -F /home/ralfi/ProjectFolder/android-example/build/intermediates/res/internal/debug/resources-internalDebug.ap_
> -D /home/ralfi/ProjectFolder/android-example/build/intermediates/multi-dex/internal/debug/manifest_keep.txt
> --custom-package com.example.android -0 apk -c de,en --output-text-symbols /home/ralfi/ProjectFolder/android-example/build/intermediates/symbols/internal/debug
> --no-version-vectors}
在我的values / attrs.xml中编辑与名称相关的字体仅发生如下:
<declare-styleable name="Styleable">
<attr name="fontFace" format="string"/>
<attr name="underlined" format="boolean"/>
<attr name="android:lineSpacingMultiplier"/>
<attr name="android:textSize"/>
</declare-styleable>
和这个标签:
<attr name="minFontSize" format="reference|dimension"/>
答案 0 :(得分:1)
重命名type =&#34; font&#34;在您的自定义TextView类中,并将其更改为任何其他名称说
<attr name="font" format="string" />
至
<attr name="typefont" format="string" />
并在每个xml文件中替换它
app:typefont="ProximaNova-Light.ttf"
答案 1 :(得分:1)
在attrs.xml
找到以下属性
<attr name="font" format="string" />
并将字体替换为其他名称,例如<attr name="font_name" format="string" />
之后,在每个xml文件中将app:font
替换为app:font_name
。
为什么会出现这个错误?
将android版本nougat更新为oreo之后,还有构建功能可下载字体
因此该字体已使用不兼容的格式定义。
有关更多信息,请参阅此链接。
https://developer.android.com/guide/topics/ui/look-and-feel/downloadable-fonts.html
希望这可以帮助你。
答案 2 :(得分:0)
为什么会发生这种情况的原因可能很少。首先是您定义了自己的字体属性。但根据您粘贴的代码,不是它。
第二个可能是您更新了依赖项。由于android gradle插件无法正确处理此场景,因此该属性可能与旧版本的库冲突。如果是这种情况./gradlew clean
将解决问题。
第三个选项可能是您的某个依赖项定义了字体属性。你是否包括任何其他使用字体的库?
我记得的最后一个选项是其他一些库正在导入不同版本的appcompat库。这不是很有可能,但您可以通过在终端中运行./gradlew :app:dependencies
来查看。
修改强>
aapt2是在androud构建系统的lates版本中引入的。也许这就是问题所在。您可以将android.enableAapt2=false
放入gradle.properties
文件中以验证是否存在问题。