どうしてこれがerror
になったのか、どうすれば解決できるのかが本当にわかりました。実際、このerror
を手に入れる直前に何をしたかはわかりません。
エラーメッセージ:/Users/hyun/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.0.1.arr/25699caf34fef6313d6ec32013a1a117f/res/values/values.xml error:duplicate value for resource 'attr/font 'with config "。エラー:以前にここで定義されたリソース
/Users/hyun/Desktop/Laftel-Android/app/build/intermediates/incremental/mergeDbugResources/merged.dir/values/values.xml configでリソース「attr/font」の値が重複しています。
Java.util.concurrent.ExecutionException:com.Android.tools.appt2.Aapt2Exception:AAPT2エラー:詳細の確認タスク ':app :: mergeDebugResources'の実行に失敗しました。エラー:Java.utilconcurrentExcutionException:com.Android.tools.aapt2.Aapt2Exception:AAPT2エラー:ログで詳細を確認してください
これは、以前にカスタムフォントを適用するために使用したロジックと競合する概念かもしれません。
以前
以下のコードを使用して、フォントのカスタム属性を作成しました。
<declare-styleable name="CustomFont">
<attr name="font" format="string" />
</declare-styleable>
私が変えるもの
私の場合、これは問題であり、attr名を変更することで解決しました
<declare-styleable name="CustomFont">
<attr name="fontName" format="string" />
</declare-styleable>
"font"プロパティでサードパーティライブラリまたはカスタムビューを使用している場合、これと同じことが当てはまる場合があります。
reverie_ss による提案に従って、res-> values-> attrs.xmlを確認してください
サポートライブラリ26は、TextViewなどのXML要素にフォント属性を追加しました。私の場合、カスタムビューとカスタム属性app:font
を備えたライブラリを使用していたため、それらは衝突しました。ライブラリー属性の名前を別のもの(textFont)に変更すると、すべて正常になりました。だから、あなたはどこかでカスタムの「フォント」属性を使用していますか?最近、Gradleを更新してLibrary 26または27をサポートしましたか?属性名を上書きできない場合は、25にロールバックしてください
AndroidXに移行した後、私のエラーメッセージは
error: duplicate value for resource 'attr/progress' with config ''
また、カスタムビューに対して次のように定義されたカスタム属性がありました。
<declare-styleable name="ProductionProgressItemView">
<attr name="progressTitle" format="string"/>
<attr name="progress" format="string"/>
<attr name="progressPercent" format="integer"/>
進行の名前をprogressValueに変更すると、問題が修正されました。
私はサポートライブラリ27.1.1を使用しています。targetSDKVersionは27です。私の場合、他のライブラリと競合がありました。サポートライブラリも追加するgoogleプレイサービスでしたが、古いバージョンでは問題が発生する2つのライブラリがあります。
これをプロジェクトレベルのbuild.gradleファイルに追加します
task clean(type: Delete) {
delete rootProject.buildDir
}
subprojects {
project.configurations.all {
resolutionStrategy.eachDependency { details ->
if (details.requested.group == 'com.Android.support'
&& !details.requested.name.contains('multidex') ) {
details.useVersion "26.1.0"
}
}
}
}
私はこれをここで見つけました リンク
compileSdkVersion 25を試してみてください。それで問題ありません。サポートライブラリ26は、TextViewなどのxml要素にフォント属性を追加しました。したがって、sdkversion 26を使用する場合は、ライブラリ属性を別の名前(textFont)に変更する必要があります。
Androidxに移行する場合は、以下のコードをgradle.propertiesに入れてみてください。このファイルがプロジェクトディレクトリ内に存在しない場合は、作成して下の行を追加します。これは解決しました
Duplicate value for resource 'attr/.*' with config ''
私の場合のエラー
Android.enableJetifier=true
Android.useAndroidX=true