Salman Khan
Salman Khan

Reputation: 895

More than one file was found with OS independent path 'com/google/i18n/phonenumbers/data/PhoneNumberMetadataProto_WF'

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'
}

Upvotes: 4

Views: 1574

Answers (3)

Dan Ahlquist
Dan Ahlquist

Reputation: 171

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

Upvotes: 0

Martin Zeitler
Martin Zeitler

Reputation: 76799

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"
}

Upvotes: 6

Daniel B.
Daniel B.

Reputation: 2611

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

Upvotes: 0

Related Questions