当前位置: 首页 > 知识库问答 >
问题:

Grpc无法解析符号GreeterGrpc

傅嘉悦
2023-03-14

我正在跟踪链接https://github.com/grpc/grpc-java/tree/master/examples/src/main/java/io/grpc/examples/helloworld这里尝试让grpc工作。

这是最终的文件夹结构。

还有我的HelloWorldServer。java与https://github.com/grpc/grpc-java/blob/master/examples/src/main/java/io/grpc/examples/helloworld/HelloWorldServer.java,包名称除外。

但Intellij表示,它无法解析符号GreeterGrpc。

有人能帮我离开这里吗?

共有3个答案

焦同
2023-03-14

对我来说,首先一个问题(在Eclipse中)是在变量周围使用单引号。我的工作是gradle。构建将proto文件编译为自定义目录中的Java类的步骤如下:

protobuf {
    protoc { artifact = "com.google.protobuf:protoc:${protocVersion}" }
    plugins {
        grpc { artifact = "io.grpc:protoc-gen-grpc-java:${grpcVersion}" }
    }
    generatedFilesBaseDir = "$projectDir/gensrc"
    generateProtoTasks {
        all()*.plugins { grpc {} }
    }
}

// Inform IDEs like IntelliJ IDEA, Eclipse or NetBeans about the generated code.
sourceSets {
    main {
        java {
            srcDirs "${protobuf.generatedFilesBaseDir}/main/java"
            srcDirs "${protobuf.generatedFilesBaseDir}/main/grpc"
        }
    }
}

然后Eclipse无法判断这些是源文件。我必须刷新项目:

然后将自定义文件添加到生成路径

冀望
2023-03-14

Proto文件的组织方式与源集Java源文件的组织方式相同。源集的Pro buf文件在一次协议运行中编译,生成的文件被添加到该源集()的Java编译运行的输入中。

sourceSets {
    main {
        java {
            srcDirs 'build/generated/source/proto/main/grpc'
            srcDirs 'build/generated/source/proto/main/java'
        }
    }
}

感谢@https://medium.com/@DivyaJaisawal/generate-java-code-from-proto-file-using-gradle-1fb9fe64e046

赵俊远
2023-03-14

请注意,GreeterGrpc。java位于生成的源代码下,但IntelliJ不知道它是源文件。

我看到目标/生成的源代码/原型/java被标记为生成的源代码根,但目标/生成的源代码/原型/grpc-java不是。通常IntelliJ会从pom.xml中的配置中获取此信息。也许您在那里没有正确配置某些内容。您可以尝试通过右键单击pom.xml重新导入Maven模块,然后选择Maven,然后重新导入。grpc-java的图标应该用齿轮变为蓝色,例如同一目录级别的java

如果这不起作用,那么您可以手动将grpc java标记为生成的源根:右键单击它,选择将目录标记为,然后选择生成的源根。

 类似资料:
  • 代码运行,但无法获得函数、类等的建议。 谢谢

  • 问题内容: 我正在按照以下链接实施Firebase Messaging,以将消息发送到多个设备 https://firebase.google.com/docs/cloud-messaging/android/send- multiple#build_send_requests 我几乎完成了实现,但停留在最后阶段(构建发送请求) 在下面的代码中 我遇到了错误 也在线 当我按住Ctrl键并单击sen

  • 问题内容: 我正在尝试为我的应用添加loginfacebook。但是,当我添加执行此操作所需的存储库时。它导致了错误。AndroidJUnit4现在无法解析。 ExampleInstrumentedTest.java 这是我的build:gradle(app) 问题答案: 尝试 添加以下上面的依赖项部分

  • 问题内容: 在我的项目中,我遇到了一个错误: 检索项目的父项时出错:找不到与给定名称“ android:TextAppearance.Material.Widget.Button.Inverse”匹配的资源。 然后我尝试使用以下方法修复它: 但是后来我得到了错误: 无法解析符号NameValuePair android 如何解决这个错误? 问题答案: 是已弃用并已被删除的软件包的一部分,这是您正在

  • 问题内容: 我收到错误 消息“无法解析符号“ OnClickListener” 和 “无法解析符号“ V””, 我开始使用Java,因此我不太擅长此语言,并且对语言不太熟悉 我的代码: 问题答案: 我不确定您为什么要这样做,但请将初始化和侦听器移至: 只需剪切以下代码行: 并将它们粘贴到: 然后阅读编码的基础及其标准。

  • 我刚刚试着用了Android Studio。我创建了空白项目,并尝试创建,它扩展了。不幸的Android Studio“说”它 无法解析符号“AppCompattivity” 我有并多次重建项目。但是,我只能使用。我做错了什么?