2016-08-31 10 views
0

Androidアプリプロジェクトでgcloud-java-datastoreライブラリを使用しようとしています。ただし、ビルドしようとすると、次のエラーが発生します。Androidアプリでgcloud-java-datastoreを使用する

':app:transformClassesWithJarMergingForDebug'タスクの実行に失敗しました。 com.android.build.api.transform.TransformException:java.util.zip.ZipException:エントリ複製:... [いくつかの異なるクラスの1]

を私はさまざまな依存関係(例えばを除く試みたcom.google.guava )をbuild.gradleのgcloud-java-datastore(v0.2.8)からダウンロードしてコンパイルします。 com.google.api.grpccom.google.guavacom.google.api-client、およびdatastore-v1-protosまたはprotobuf-javaのいずれかを除外すると、正常にコンパイルできます。ただし、最後の2つの依存関係のいずれかを除外すると、ライブラリのコア機能が損なわれます。

このライブラリをAndroidでも使用できますか?もしそうなら、私は間違って何をしていますか?

+0

あなたは、App Engineのを使用しようとしていますか?私はあなたがエンドポイントを探していると思います。 https://cloud.google.com/appengine/docs/java/endpoints/helloendpoints-android-studio –

+0

@ cricket_007いいえ、App Engineを使用していません。私はエンドポイントを認識していますが、私のプロジェクトでは不要です。以前のGoogle Cloud Datastore API v1beta2クライアントライブラリfor Javaを使用した実用的なソリューションがありましたが、v1beta2が9月末に廃止されればもう動作しません。 – user58094

+0

私は参照してください。申し訳ありませんが、エンドポイントは私がデータストアに接続するために使用した唯一のAndroidライブラリです。他のすべてが失敗した場合は、REST APIがあります –

答えて

0

わかりました。私はdatastore-v1-protos-1.0.1.jarをダウンロードして抽出し、com/google/datastoreフォルダ以外をすべて削除し、新しいjarファイルを作成し、Android Studioプロジェクトのライブラリとして追加しました。

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:それから私は、次の除外とbuild.gradleするのgcloud-Javaベースのデータストアのライブラリを追加

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' 
} 
関連する問題