繁体   English   中英

android protobuf javalite 和 R8

[英]android protobuf javalite and R8

我的发布版本在任务上失败:minifyReleaseWithR8

> Task :app:minifyReleaseWithR8 FAILED
AGPBI: {"kind":"error","text":"Type com.google.protobuf.SourceContextOrBuilder is defined multiple times: /Users/userz/.gradle/caches/transforms-2/files-2.1/fa3559cc4d07efe76175d461f7267b38/jetified-protobuf-javalite-3.11.0.jar:com/google/protobuf/SourceContextOrBuilder.class, /Users/userz/path-to-project/build/intermediates/javac/release/classes/com/google/protobuf/SourceContextOrBuilder.class","sources":[{"file":"/Users/userz/.gradle/caches/transforms-2/files-2.1/fa3559cc4d07efe76175d461f7267b38/jetified-protobuf-javalite-3.11.0.jar"}],"tool":"R8"}

项目中的protobuf定义如下:

protobuf {
    protoc {
        // You still need protoc like in the non-Android case
        artifact = "com.google.protobuf:protoc:3.11.0"
    }
    generateProtoTasks {
        all().each { task ->
            task.builtins {
                java {
                    option "lite"
                }
            }
        }
    }
}

protobuf "com.google.protobuf:protobuf-javalite:3.11.0"

有趣的是,如果我删除 firebase 性能库

implementation "com.google.firebase:firebase-perf"

比构建更早失败(on:kaptReleaseKotlin 任务)

> Task :app:kaptReleaseKotlin
path-to-project/build/generated/source/proto/release/java/main/MessageOuterClass.java:9: error: cannot find symbol
      com.google.protobuf.ExtensionRegistryLite registry) {  
symbol:   class ExtensionRegistryLite
  location: package com.google.protobuf/path-to-project/build/generated/source/proto/release/java/main/MessageOuterClass.java:493: error: cannot find symbol
      com.google.protobuf.MessageLiteOrBuilder {
implementation "com.google.protobuf:protobuf-javalite:3.11.0"

解决了问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM