1

我正在尝试将此代码与 Google Cloud Datastore 一起使用:

Query<Entity> query = Query.entityQueryBuilder()
    .kind("Task")
    .filter(PropertyFilter.hasAncestor(
        datastore.newKeyFactory().kind("TaskList").newKey("default")))
    .build();
datastore.run(query, ReadOption.eventualConsistency());

我收到此错误:

线程“主”java.lang.VerifyError 中的异常:com.google.datastore.v1.ReadOptions$Builder 类覆盖最终方法 mergeUnknownFields.(Lcom/google/protobuf/UnknownFieldSet;)Lcom/google/protobuf/GeneratedMessage$Builder; 在 java.lang.ClassLoader.defineClass1(Native Method) 在 java.lang.ClassLoader.defineClass(ClassLoader.java:763) 在 java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 在 java.net.URLClassLoader.defineClass (URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net.URLClassLoader$1.run(URLClassLoader .java:362) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 在 java.lang 的 java.security.AccessController.doPrivileged(Native Method)。

一些一般细节:

  • 语言:斯卡拉
  • 运行:谷歌计算引擎
  • 使用 com.google.guava:guava:19.0 和 com.google.cloud:google-cloud:0.3.0 依赖项
  • 这是来自 google.datastore.v1.protos 的代码

    public final Builder mergeUnknownFields( final com.google.protobuf.UnknownFieldSet unknownFields) { return this; }

  • 这是来自 com.google.protobuf.GeneratedMessage 的代码

        public BuilderType mergeUnknownFields(UnknownFieldSet unknownFields) {
        this.unknownFields = UnknownFieldSet.newBuilder(this.unknownFields).mergeFrom(unknownFields).build();
        this.onChanged();
        return this;
    }
    

`

4

2 回答 2

1

添加 Shaded Dependencies 通过使用以下方法解决了 spark/google 云客户端 api 冲突问题:

<plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <relocations>
                            <relocation>
                                <pattern>com.google</pattern>
                                <shadedPattern>shaded.com.google</shadedPattern>
                            </relocation>
                        </relocations>
                    </configuration>
                </execution>
            </executions>
        </plugin> 
于 2016-09-19T08:56:15.400 回答
0

我相信这是这个问题中描述的问题的症状

于 2016-09-15T16:36:38.193 回答