Po aktualizacji AndroidStudio jeden z moich projektów nie buduje. Nie udało mi się znaleźć działającego rozwiązania. Próbowałem usunąć różne foldery i pliki z pamięci podręcznej. Próbowałem też ponownie zainstalować android studio, ale nic nie pomogło.

Czy ktoś doświadczył tego samego problemu?

org.gradle.internal.UncheckedException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
Output:  /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:2430: error: <item> inner element must either be a resource reference or empty.

Command: /home/erikbylow/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-linux.jar/a3d9a3af204f4221527c5ec7986f58cd/aapt2-3.2.1-4818971-linux/aapt2 compile --legacy \
        -o \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/res/merged/debug \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-linux Daemon #2
Output:  /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/src/main/res/values/ids.xml:3:5-55: AAPT: error: <item> inner element must either be a resource reference or empty.

Command: /home/erikbylow/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.1-4818971-linux.jar/a3d9a3af204f4221527c5ec7986f58cd/aapt2-3.2.1-4818971-linux/aapt2 compile --legacy \
        -o \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/res/merged/debug \
        /home/erikbylow/Code/privateprojects/workspace-android/TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml
Daemon:  AAPT2 aapt2-3.2.1-4818971-linux Daemon #2
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:63)
    at org.gradle.internal.UncheckedException.throwAsUncheckedException(UncheckedException.java:40)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:76)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
    at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:73)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at 
0
El_Loco 31 październik 2018, 22:11

1 odpowiedź

Najlepsza odpowiedź

Spójrz na błąd, który otrzymujesz:

TailoredDictFire/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:2430: błąd: element wewnętrzny musi być odwołaniem do zasobu lub być pusty.

AAPT2 mówi, że w wierszu 2430 w pliku scalonych wartości znajduje się zasób, który ma nieprawidłową wartość - powinien być albo odwołaniem do zasobu, albo pustym. Jeśli dobrze pamiętam, to jest to wtedy, gdy definiujesz zasób ID i umieszczasz na przykład ciąg lub liczbę całkowitą jako wartość dla niego. Powinien albo nie mieć żadnej wartości, albo powinien być odwołaniem do innego identyfikatora („@id/other_id”).

Zobacz, jaki zasób znajduje się w tej linii. Czy rozpoznajesz, że pochodzi z Twojej aplikacji? Jeśli go zdefiniowałeś, upewnij się, że naprawiłeś to w swoich plikach wartości (app/src/main/res/values):

<id name="my_id">my value</id> -> <id name="my_id" />

Jeśli pochodzi z biblioteki zewnętrznej, możesz spróbować zastąpić go, definiując zasób o pasującym typie i nazwie w swoich zasobach.

0
Izabela Orlowska 2 listopad 2018, 19:05