Reputation: 895
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
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
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
Reputation: 2611
First Invalidate caches and restart, then clean the project and rebuild it .hope it helps.
Upvotes: 0