构建在本地工作,但在 codemagic 上失败 |任务“:app:stripDebugDebugSymbols”执行失败

Posted

技术标签:

【中文标题】构建在本地工作,但在 codemagic 上失败 |任务“:app:stripDebugDebugSymbols”执行失败【英文标题】:Build works on local but fails on codemagic | Execution failed for task ':app:stripDebugDebugSymbols' 【发布时间】:2021-12-20 20:32:19 【问题描述】:

我正在尝试实施一个持续部署系统来构建我的应用程序并使用 codemagic 部署到 Google Play。在本地进行构建工作正常,但在 codemagic 上远程失败。

错误总结:

FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:stripDebugDebugSymbols'.
> 1 exception was raised by workers:
  org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/usr/local/share/android-sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-strip''

完整的日志:

== Building for Android ==

> flutter build appbundle --debug
Running "flutter pub get" in My_Project...                     1,655ms

???? Building with sound null safety ????

Running Gradle task 'bundleDebug'...                            
[flutter_background_geolocation] Purging debug resources in release build
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: /Users/builder/programs/flutter_2_5_3/.pub-cache/hosted/pub.dartlang.org/geocoding-2.0.1/android/src/main/java/com/baseflow/geocoding/GeocodingPlugin.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:stripDebugDebugSymbols'.
> 1 exception was raised by workers:
  org.gradle.process.internal.ExecException: A problem occurred starting process 'command '/usr/local/share/android-sdk/ndk/23.1.7779620/toolchains/llvm/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-strip''


* 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 2m 19s
Running Gradle task 'bundleDebug'...                              141.1s
Gradle task bundleDebug failed with exit code 1


Build failed :|
Failed to build for Android

codemagic 上的当前配置:

Flutter channel: stable 
Mode: debug 
Build for: Android

【问题讨论】:

【参考方案1】:

要解决此问题,您需要将 android/gradle/wrapper/gradle-wrapper.properties 中的 Gradle 版本升级到 6.7.1,或者如果您没有此文件,则将 gradle wrapper 提交到您的存储库。

除此之外,您可能还需要升级 andriod/build.gradle 中的 Android Gradle 插件

- classpath 'com.android.tools.build:gradle:3.5.4'
+ classpath 'com.android.tools.build:gradle:4.2.0'

没有 GRADLE 升级

如果由于某些原因您无法升级 Gradle 版本,您可以冻结以前的 NDK 版本。

为此,您可以在 build.gradle 中指定 ndkVersion "22.1.7171670",并确保使用 Java 1.8,因为使用最新的 Java 版本存在问题。

在 Codemagic 中,您可以像这样在 codemagic.yamlenvironment 部分指定 Java 版本

workflows:
  workflow-name:
    environment:
      ndk: r22b
      java: 1.8

【讨论】:

我将版本更新为 6.7.1,并确保 android/gradle/wrapper/gradle-wrapper.properties 文件在我的 github 存储库中。但它仍然无法正常工作,同样的问题 尝试在android/build.gradleclasspath 'com.android.tools.build:gradle:4.2.0'而不是classpath 'com.android.tools.build:gradle:3.5.4'升级android插件 这解决了我的问题,该应用程序现在基于 codemagic 构建。非常感谢!

以上是关于构建在本地工作,但在 codemagic 上失败 |任务“:app:stripDebugDebugSymbols”执行失败的主要内容,如果未能解决你的问题,请参考以下文章

Codemagic 不适用于 iOS 中的自定义运行脚本?

由于 Firebase GoogleService-Info.plist,Codemagic iOS 构建失败

WiX 构建在 TFS 中失败但在本地工作

强命名程序集验证在本地工作,但在测试设备上失败

“没有这样的模块:AVFAudio”xcode 构建在旧机器上失败,但在新机器上工作正常

React 构建在本地运行,但在 Amplify 上失败