gpt4 book ai didi

gradle - Android Studio 2. 2's incremental compiler can' t 查看生成的 protobufs

转载 作者:行者123 更新时间:2023-12-03 03:49:51 25 4
gpt4 key购买 nike

我将我的稳定版 Android Studio 升级到 2.2,现在 IDE 的“增量编译器”找不到任何生成的 protobuf 类的符号。我打开项目,它可以构建应用程序并将其部署到设备上。但是当我打开一个包含生成的 protobuf 引用的 Java 类文件时,Android Studio 会在文件打开后立即将它们标记为错误。生成的 proto 类的每个 Java 导入都标有“无法解析符号”。

first noticed这是一个月前在金丝雀 channel 上的,但没有想到任何事情,因为我在其他 protobuf 问题上苦苦挣扎(通过 javalite 拆分升级到 3.0.0)。直到今天我都忘记了。仍然可以处理该项目,只是 IDE 几乎没用,因为它认为存在错误(即使真正的编译也可以)。

以供引用。

gradle-2.14.1
com.android.tools.build:gradle:2.2.0
com.google.protobuf:protobuf-gradle-plugin:0.8.0
com.google.protobuf:protobuf-lite:3.0.0
com.google.protobuf:protoc:3.0.0
com.google.protobuf:protoc-gen-javalite:3.0.0

在包含 .proto 文件的模块中:
protobuf {
protoc {
artifact = google_protoc_artifact
}
plugins {
javalite {
artifact = google_protoc_javalite_artifact
}
}
generateProtoTasks {
all().each { task ->
task.builtins {
remove java
}
task.plugins {
javalite { }
}
}
}
}

最佳答案

我们遇到了同样的问题,并发现了以下问题:

1)为了让idea(studio)看到你的源代码,你需要通过将idea插件添加到你的模块来帮助它:

apply plugin: 'idea'
idea {
module {
// Use "${protobuf.generatedFilesBaseDir}/main/javalite" for LITE_RUNTIME protos
sourceDirs += file("${protobuf.generatedFilesBaseDir}/main/java");
}
}

2) 另一个错误,Android Studio 似乎忽略了 build/下的任何源目录。您必须将生成的目录移到构建之外:
protobuf {
generatedFilesBaseDir = "$projectDir/src/generated"
}

这两项更改为我们解决了 Android Studio 2.2 引入的问题。

关于gradle - Android Studio 2. 2's incremental compiler can' t 查看生成的 protobufs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39609980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com