Использование gcloud-java-datastore в приложении Android

Я пытаюсь использовать библиотеку gcloud-java-datastore в проекте приложения для Android. Тем не менее, я продолжаю сталкиваться с следующей ошибкой при попытке построить:

Не удалось выполнить задачу ':app:transformClassesWithJarMergingForDebug'. com.android.build.api.transform.TransformException: java.util.zip.ZipException: повторяющаяся запись: ... [один из нескольких разных классов]

Я пытался исключить различные зависимости (например, com.google.guava) из gcloud-java-datastore (v0.2.8) в build.gradle для его компиляции. Если я исключу com.google.api.grpc, com.google.guava, com.google.api-clientи один из datastore-v1-protos или же protobuf-javaЯ могу получить его для успешной компиляции. Однако исключение одной из этих двух последних зависимостей нарушает основные функции библиотеки.

Можно ли вообще использовать эту библиотеку в Android? Если так, что я делаю не так?

1 ответ

Решение

Ок, разобрался. Я скачал и распаковал datastore-v1-protos-1.0.1.jar, удалил все, кроме папки com/google/datastore, сделал новый jar-файл и включил его в качестве библиотеки в мой проект Android Studio. Затем я добавил библиотеку gcloud-java-datastore в build.gradle со следующими исключениями:

compile('com.google.cloud:gcloud-java-datastore:0.2.8') {
    exclude group: 'com.google.api-client', module: 'google-api-client-appengine'
    exclude group: 'com.google.guava', module: 'guava-jdk5'
    exclude group: 'com.google.cloud.datastore', module: 'datastore-v1-protos'
}

и следующие параметры упаковки:

packagingOptions {
    pickFirst 'META-INF/INDEX.LIST'
    pickFirst 'META-INF/services/io.grpc.ManagedChannelProvider'
    pickFirst 'META-INF/io.netty.versions.properties'
    pickFirst 'META-INF/maven/com.google.guava/guava/pom.xml'
    pickFirst 'META-INF/maven/com.google.guava/guava/pom.properties'
}
Другие вопросы по тегам