4

Can someone please help me? I have been stuck with error for few days I have tried to exclude it using package options but doesn't seem to work.

caused by: com.android.builder.merge.DuplicateRelativeFileException: More than one file was found with OS independent path 'com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF'
at com.android.builder.merge.StreamMergeAlgorithms.lambda$acceptOnlyOne$2(StreamMergeAlgorithms.java:75)
at com.android.builder.merge.StreamMergeAlgorithms.lambda$select$3(StreamMergeAlgorithms.java:100)
at com.android.builder.merge.IncrementalFileMergerOutputs$1.create(IncrementalFileMergerOutputs.java:86)
at com.android.builder.merge.DelegateIncrementalFileMergerOutput.create(DelegateIncrementalFileMergerOutput.java:61)
at com.android.build.gradle.internal.transforms.MergeJavaResourcesTransform$1.create(MergeJavaResourcesTransform.java:386)
at com.android.builder.merge.IncrementalFileMerger.updateChangedFile(IncrementalFileMerger.java:221)
at com.android.builder.merge.IncrementalFileMerger.mergeChangedInputs(IncrementalFileMerger.java:190)
at com.android.builder.merge.IncrementalFileMerger.merge(IncrementalFileMerger.java:77)
at com.android.build.gradle.internal.transforms.MergeJavaResourcesTransform.transform(MergeJavaResourcesTransform.java:419)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
at sun.reflect.GeneratedMethodAccessor312.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
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:131)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:300)
at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:292)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:174)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:90)
at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:120)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:99)
... 115 more

here are gradle dependencies used in this project.

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
    implementation project(':com.android.phone.common')
    implementation project(':com.android.contacts.common')
    implementation 'androidx.cardview:cardview:1.0.0'
    implementation 'androidx.recyclerview:recyclerview:1.1.0-alpha01'
    implementation 'com.google.android.material:material:1.1.0-alpha02'
    implementation 'androidx.legacy:legacy-support-v13:1.0.0'
    implementation 'com.umeng.analytics:analytics:6.1.4'
    implementation 'com.google.guava:guava:27.0.1-android'
    implementation project(path: ':com.android.common')
    implementation 'com.googlecode.libphonenumber:libphonenumber:8.10.2'
    implementation 'com.googlecode.libphonenumber:geocoder:2.108'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
}
Md. Zakir Hossain
  • 1,082
  • 11
  • 24
Salman Khan
  • 895
  • 1
  • 8
  • 18

3 Answers3

6

a) you'd have to add packagingOptions, to either include that file only once - or to exclude it:

android {

    ...

    packagingOptions {
        pickFirst "com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF"
        // exclude "com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF"
    }
}

b) another possible solution (the name of the project might vary):

implementation (project(":com.android.phone.common")) {
    exclude group: "com.googlecode.libphonenumber", module: "libphonenumber"
}
Martin Zeitler
  • 1
  • 19
  • 155
  • 216
0

First Invalidate caches and restart, then clean the project and rebuild it .hope it helps.

Daniel B.
  • 2,491
  • 2
  • 12
  • 23
  • also manually delete build and release folder from the project.Same Lipphone number issue that I faced was resolved by deleting build and release(delete debug folder too if present) folder then clean and rebuild. For me this issue most probably occured because of gradle version change. – SATYAJEET RANJAN Jul 01 '20 at 10:06
0

I tried the above answers, and they unfortunately did not help. After finding the more general question below, I raised the JVM heap size specified in gradle.properties.

Insufficient memory explains why this did not happen on my CI pipeline, which has its own JVM options defined. It was only happening on my local build. A very strange error presentation, though.

https://stackoverflow.com/a/57607026/1454558

Dan Ahlquist
  • 161
  • 1
  • 6