2

I have a old android project, Now I decided to run it, After migration to androidX and add some upgrade in libraries I got these errors when I am trying to run it:

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':mergeDebugResources'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:103)
    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 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:256)
    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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:249)
    at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:238)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:663)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:597)
    at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
Caused by: org.gradle.internal.UncheckedException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception: Android resource compilation failed
Output:  /mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:5159: error: <item> inner element must either be a resource reference or empty.
/mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:5163: error: <item> inner element must either be a resource reference or empty.
/mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:5182: error: <item> inner element must either be a resource reference or empty.
/mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:5228: error: <item> inner element must either be a resource reference or empty.
/mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml:5229: error: <item> inner element must either be a resource reference or empty.

Command: /home/alt/.gradle/caches/transforms-1/files-1.1/aapt2-3.2.0-4818971-linux.jar/8ae53ed779dc0eb0d7edfbb9c8e24cf8/aapt2-3.2.0-4818971-linux/aapt2 compile --legacy \
        -o \
        /mnt/Media/usb/mobile-android/client14/build/intermediates/res/merged/debug \
        /mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml

This is my gradle:

buildscript {
    repositories {
        google()
        mavenCentral()
        mavenLocal()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:3.2.0'
//        classpath 'com.guardsquare.dexguard.gradle:dexguard-gradle-plugin:8.0.17'
    }
}

apply plugin: 'com.android.application'

allprojects{
    repositories{
        google()
        mavenCentral()
        mavenLocal()

        maven {
            url "https://repo1.maven.org/maven2"
        }
        maven {
            url "https://repo.spring.io/libs-milestone"
        }
    }
}

android {
    compileSdkVersion 29
    buildToolsVersion "27.0.3"

    signingConfigs {
        debug {
            storeFile     file('pmb-android.keystore')
            storePassword 'caspianmbkeystore'
            keyAlias      'caspian_mb'
            keyPassword   'caspianmbkeystore'
        }
        release {
            storeFile     file('pmb-android.keystore')
            storePassword 'caspianmbkeystore'
            keyAlias      'caspian_mb'
            keyPassword   'caspianmbkeystore'
        }
    }

    defaultConfig {
        applicationId "com.cas.android"
        targetSdkVersion 29
        minSdkVersion 19
        versionCode 1391
        versionName "1.3.9.1"
        vectorDrawables.useSupportLibrary = true
        signingConfig signingConfigs.debug
        multiDexEnabled true
    }

    buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    compileOptions {
        sourceCompatibility org.gradle.api.JavaVersion.VERSION_1_8
        targetCompatibility org.gradle.api.JavaVersion.VERSION_1_8
    }

    packagingOptions {
        exclude 'scala.*'
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/LGPL2.1'
        exclude 'META-INF/maven/com.fasterxml.jackson.core/jackson-core/pom.properties'
    }

    lintOptions{
        checkReleaseBuilds false
        abortOnError false
    }
}

dependencies {
    implementation 'androidx.multidex:multidex:2.0.1'
    implementation 'com.basgeekball:awesome-validation:2.0'
    implementation 'com.specyci:residemenu:1.6'
    implementation 'org.greenrobot:eventbus:3.0.0'
    implementation 'com.google.guava:guava:24.1-jre'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.8.6'
    implementation 'org.springframework.android:spring-android-rest-template:2.0.0.M3'
    implementation 'com.google.android.material:material:1.4.0'
    implementation 'androidx.vectordrawable:vectordrawable-animated:1.1.0'
    implementation 'androidx.mediarouter:mediarouter:1.2.5'
    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.2.1'
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.appcompat:appcompat:1.3.1'
    implementation 'com.google.android.gms:play-services:12.0.1'
    implementation group: 'joda-time', name: 'joda-time', version: '2.9.9'
    implementation group: 'com.ibm.icu', name: 'icu4j', version: '51.1'
}

This is gradle.properies:

android.enableJetifier=true
android.injected.build.model.only.versioned=3
android.useAndroidX=true

What is the problem?

6
  • Does the file cited in the error exist? If so, what does line 5159 contain? Commented Oct 31, 2021 at 21:54
  • Sorry, I was referring to /mnt/Media/usb/mobile-android/client14/build/intermediates/incremental/mergeDebugResources/merged.dir/values/values.xml. The failures are complaining about several lines deep in this file, such as line 5159. I was interested in what those lines look like. Commented Oct 31, 2021 at 22:01
  • there is ` <item name="does_not_have" type="id">ندارد.</item>` @CommonsWare Commented Oct 31, 2021 at 22:02
  • This is about my ids.xml <?xml version="1.0" encoding="utf-8"?> <resources> <item name="wimax_number" type="id">شماره وایمکس</item> <item name="not_entered" type="id">وارد نشده</item> <item name="does_not_have" type="id">ندارد.</item> <item name="has" type="id">دارد.</item> <item name="wait" type="id">منتظر بمانید</item> </resources> Commented Oct 31, 2021 at 22:04
  • An ID resource does not have a body. Are those really supposed to be ID resources, or are they supposed to be string resources? Commented Oct 31, 2021 at 22:06

1 Answer 1

1

ID resources are not supposed to have text in the XML node, the way that yours do.

My best guess is that the build tools were more forgiving about this back when you worked on this project originally. Now, they are enforcing the rules more.

So, if you remove the text from those failing <id> elements, you should be in better shape.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.