エラーの詳細
AGPBI: {"kind":"error","text":"error: \u003citem\u003e inner element must either be a resource reference or empty.","sources":[{"file":"...\\app\\src\\main\\res\\values\\ids.xml","position":{"startLine":2,"startColumn":4,"startOffset":57,"endColumn":61,"endOffset":114}}],"original":"","tool":"AAPT"}
:app:mergeDebugResources
Error: Java.util.concurrent.ExecutionException: com.Android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
:app:mergeDebugResources FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> Error: Java.util.concurrent.ExecutionException: com.Android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details.
リソースファイル
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id">tv_deviceName</item>
</resources>
ビルド環境
リソースでidを宣言する場合、本文は空でなければなりません
<item
type="id"
name="id_name" />
詳細については、以下のリンクをご覧ください
https://developer.Android.com/guide/topics/resources/more-resources#Id
Oliver Manyasaが言及したように、以下のようになります
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id"/>
</resources>
Android Studio 3.2.1にアップグレードした後、同様の問題が発生しました
エラーはids.xmlファイルでこのアイテムを指していました
<item name="mnuActivate" type="id">Activation</item>
ユーザーが述べたようにSangeet Sureshに変更しました
<item name="mnuActivate" type="id" />
これで問題が修正されました。
これに対する解決策を得るために頭をかき回している他のすべての人は、次のような内容でids.xml
の中にsrc/main/res/values
を作成します(ただし、エラーが表示されているIDで必ず更新してください) ):
<?xml version="1.0" ?>
<items>
<item name="animator" type="id"/>
<item name="date_picker_day" type="id"/>
<string name="deleted_key"/>
</items>
Android Studioは明示的な値に対してエラーを表示します。これらの値が使用しているライブラリからのものである場合、中間ファイルを変更することはできないため、代わりにここで、 code Android studioが処理します。
リソースファイルで、終了タグと本文を削除します。つまり、「tv_deviceName」を削除します
リソースファイルを次のようにします。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="tv_deviceName" type="id"/>
</resources>
私にとっては、新しいgradleバージョンのため、これは実際に失敗していました。私が使用しているプラグインの中には、最新のgradleと互換性のないものがあると確信しています。私は次のバージョンを持つビルドを成功させました:
gradle-wrapper.propertiesファイル:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.1-all.Zip
build.gradleファイル
dependencies {
classpath 'com.Android.tools.build:gradle:3.0.1'
}
編集:
現在3.2。+バージョンを使用したいので、それは信頼できるソリューションではありません。
私がやったことは、新しいids.xmlファイルを作成し、競合していたすべての値をオーバーライドすることです。
ids.xmlファイルの例:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<item name="cc_card" type="id"/>
<item name="cc_ccv" type="id"/>
<item name="cc_entry" type="id"/>
<item name="cc_entry_internal" type="id"/>
<item name="cc_exp" type="id"/>
<item name="cc_form_layout" type="id"/>
<item name="cc_four_digits" type="id"/>
<item name="cc_Zip" type="id"/>
<item name="text_helper" type="id"/>
</resources>