在本地可以构建但在Codemagic上失败 | 执行任务“:app:stripDebugDebugSymbols”失败

8

我尝试使用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个回答

14

要解决这个问题,您需要升级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.yaml中的environment部分指定Java版本,如下所示:

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

1
我已将版本更新为6.7.1,并确保android/gradle/wrapper/gradle-wrapper.properties文件在我的Github存储库中。但仍然存在相同的问题,无法正常工作。 - eduinvestor
2
尝试在 android/build.gradle 中将插件升级为 classpath 'com.android.tools.build:gradle:4.2.0',而不是 classpath 'com.android.tools.build:gradle:3.5.4' - Mikhail Tokarev
1
这解决了我的问题,应用程序现在正在 Codemagic 上构建。非常感谢! - eduinvestor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接