- Home /
Gradle build fails as GameAnalytics conflicts with a library using Room database
Hi,
I have a custom .jar library in my project that uses Android Room database. Now when I integrate the game with GameAnalytics the gradle build fails with
CommandInvokationFailure: Gradle build failed.
C:/Program Files/Java/jdk1.8.0_201\bin\java.exe -classpath "C:\Program Files\Unity2018.3\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-4.6.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleDebug"
stderr[
D8: Program type already present: android.arch.core.executor.ArchTaskExecutor$1
FAILURE: Build failed with an exception.
Plus a lot of not-so-informative dump.
I have following dependency in my library
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
def room_version = "1.1.1"
implementation "android.arch.persistence.room:runtime:$room_version"
annotationProcessor "android.arch.persistence.room:compiler:$room_version" // For Kotlin use kapt instead of annotationProcessor
**DEPS**}
And if I put those Room db lines in comments, build succeeds. Thus I believe GA has the same Room db included, possibly another version.
I also converted the project to android studio, and building there produced this error notification:
More than one file was found with OS independent path 'META-INF/android.arch.core_runtime.version'
How to solve this?
Answer by perza · Mar 07, 2019 at 02:06 PM
by running gradlew androidDependencies I get this listing
debug
debugCompileClasspath - Dependencies for compilation
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\android.arch.core.common-1.1.0.jar
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\android.arch.lifecycle.common-1.1.0.jar
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\com.android.support.support-annotations-27.1.1.jar
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\unity-classes.jar
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\unity_gameanalytics.jar
+--- E:\AndroidProjects\GameAnalyticsTest\GameAnalyticsTest\libs\WebViewPlugin.jar
+--- :android.arch.core.runtime-1.1.0:@aar
+--- :android.arch.lifecycle.livedata-core-1.1.0:@aar
+--- :android.arch.lifecycle.runtime-1.1.0:@aar
+--- :android.arch.lifecycle.viewmodel-1.1.0:@aar
+--- :com.android.support.animated-vector-drawable-27.1.1:@aar
+--- :com.android.support.appcompat-v7-27.1.1:@aar
+--- :com.android.support.support-compat-27.1.1:@aar
+--- :com.android.support.support-core-ui-27.1.1:@aar
+--- :com.android.support.support-core-utils-27.1.1:@aar
+--- :com.android.support.support-fragment-27.1.1:@aar
+--- :com.android.support.support-media-compat-27.1.1:@aar
+--- :com.android.support.support-v4-27.1.1:@aar
+--- :com.android.support.support-vector-drawable-27.1.1:@aar
+--- :com.google.android.gms.play-services-ads-identifier-15.0.1:@aar
+--- :com.google.android.gms.play-services-basement-15.0.1:@aar
+--- :gameanalytics:@aar
+--- :sdklib-release:@aar
+--- android.arch.persistence.room:runtime:1.1.0-alpha2@aar
+--- android.arch.persistence.room:common:1.1.0-alpha2@jar
+--- android.arch.persistence:db-framework:1.1.0-alpha2@aar
+--- android.arch.persistence:db:1.1.0-alpha2@aar
+--- android.arch.core:runtime:1.1.0@aar
+--- com.android.support:support-core-utils:26.1.0@aar
+--- android.arch.core:common:1.1.0@jar
+--- com.android.support:support-compat:26.1.0@aar
\--- com.android.support:support-annotations:26.1.0@jar
So the remaining problem seems to be com.android.support version conflict 26.1.0 vs. 27.1.1.
Now it seems that there is no version of Room database that supports 27.1.1, which in turn is required by GameAnalytics. Room versions jump right from 26.x to 28.x.
So I need to start looking for other GA versions, unless better ideas from anyone?