我正在以这样的方式实现protobuf:
implementation 'com.google.protobuf:protobuf-lite:3.0.1'
protobuf 'com.google.protobuf:protobuf-java:3.10.0'除此之外,我还有一个领域:
kapt 'io.realm:realm-annotations-processor:6.1.0'当我试图构建代码时,我会得到以下错误:
Type com.google.protobuf.Any$1 is defined multiple times: ..\.gradle\caches\transforms-2\files-2.1\27abd4bf864632f274bb28f15772efb2\jetified-protolite-well-known-types-17.0.0-runtime.jar:com/google/protobuf/Any$1.class, ..\app\build\intermediates\transforms\RealmTransformer\demo\debug\0\com\google\protobuf\Any$1.class我需要用:
protobuf 'com.google.protobuf:protobuf-java:3.10.0' 因为我的proto文件包含Any.proto
是否有一种方法可以将proto文件排除在域之外,或者使用我的proto文件中的任何文件?
发布于 2020-08-07 13:54:05
删除: protobuf‘com.google.Probuf:protobuf-java:3.10.0’
通过删除该行,您应该会得到另一个错误,因为Duration.proto不在包中。这个错误将在下一个版本的Protobuf中修复。
有一项工作可以解决这个问题:
的jar文件
的jar文件
中提取Duration.proto
中。
中。
实现'com.google.protobuf:protobuf-lite:3.0.1'
通过
implementation fileTree(dir: 'libs', include: ['protobuf-javalite-3.10.0.jar'])使用两个jar文件的相同版本。
在新版protobuf发布之前,这是一个临时修复。
https://stackoverflow.com/questions/62569903
复制相似问题