在 Flutter/Android 构建中找不到 protoc-3.9.2-osx

Posted

技术标签:

【中文标题】在 Flutter/Android 构建中找不到 protoc-3.9.2-osx【英文标题】:Could not find protoc-3.9.2-osx on Flutter/Android build 【发布时间】:2022-01-01 11:26:06 【问题描述】:

我正在开发一个 Flutter 应用程序,该应用程序集成了一个使用 Protobuff 的本机包。我在 android Studio 和 Mac(Apple 发布)上工作。

在 Windows 上,应用程序会构建,但由于我在 MacO 上工作,因此无法再构建应用程序。我收到以下错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ‘:mypackage:generateDebugProto’.
> Could not resolve all files for configuration ‘:mypackage:protobufToolsLocator_protoc’.
   > Could not find protoc-3.9.2-osx-aarch_64.exe (com.google.protobuf:protoc:3.9.2).
     Searched in the following locations:
         https://jcenter.bintray.com/com/google/protobuf/protoc/3.9.2/protoc-3.9.2-osx-aarch_64.exe

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 888ms
Exception: Gradle task assembleDebug failed with exit code 1

ios 上的构建也不起作用。

如何解决此错误?您对问题出在哪里有任何想法吗?

【问题讨论】:

我看到了jcenter.bintray.com,但是那个 repo 是 EOL:jfrog.com/blog/… 和 blog.gradle.org/jcenter-shutdown 你可能想扩展你如何集成 protobuf/what 库。 谢谢,可能是解决方案。但是可以在没有 jcenter 的情况下使用 protobuf 吗?没有 jcenter 怎么逼? 在我的 gradle.build 中,如果我用 mavenCentral() 替换 jcenter(),我会遇到完全相同的错误。 (我的缓存已被清除)。 【参考方案1】:

我找到了一个基于https://github.com/grpc/grpc-java/issues/7690的解决方案

我已创建文件:$HOME/.gradle/gradle.properties 与:

protoc_platform=osx-x86_64

我的 build.gradle :

protobuf 
// Configure the protoc executable
protoc 
    // for apple m1, add protoc_platform=osx-x86_64 in $HOME/.gradle/gradle.properties
    if (project.hasProperty('protoc_platform')) 
        artifact = "com.google.protobuf:protoc:3.9.2:$protoc_platform"
     else 
        artifact = "com.google.protobuf:protoc:3.9.2"
    

plugins 
    javalite 
        // The codegen for lite comes as a separate artifact
        if (project.hasProperty('protoc_platform')) 
            artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0:$protoc_platform"
         else 
            artifact = "com.google.protobuf:protoc-gen-javalite:3.0.0"
        
    

【讨论】:

嘿,Dev,它就像一个魅力。感谢您的回答。应该被接受。

以上是关于在 Flutter/Android 构建中找不到 protoc-3.9.2-osx的主要内容,如果未能解决你的问题,请参考以下文章

在 iTunes 中找不到构建

Flutter Android Studio 构建失败

构建在 VS 2013 中找不到 Platform Toolset = 'v141'

纱线在构建中找不到模块'logform'winston

为啥 XCode 4 在构建过程中找不到我的 .h 文件?

在 VS Studio 中找不到构建运行器