×

gradle task assem

gradle task([Flutter] flutter项目一直卡在 Running Gradle task ’assembleDebug’)

admin admin 发表于2024-02-05 01:55:29 浏览10 评论0

抢沙发发表评论

各位老铁们好,相信很多人对gradle task都不是特别的了解,因此呢,今天就来为大家分享下关于gradle task以及[Flutter] flutter项目一直卡在 Running Gradle task ’assembleDebug’的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

本文目录

[Flutter] flutter项目一直卡在 Running Gradle task ’assembleDebug’

首先将项目android目录下的build.gradle中google()和jcenter()替换成阿里镜像地址修改本地的flutter配置文件,flutter安装目录下找到packages/flutter_tools/gradle/flutter.gradle文件,repositories 修改为 ***隐藏网址******隐藏网址***重新运行项目,等待一会就可以正常运行。 ***隐藏网址***

flutter 反编译

》You are building a fat APK that includes binaries for android-arm, android-arm64. 》If you are deploying the app to the Play Store, it’s recommended to use app bundles or split the APK to reduce the APK size. 》    To generate an app bundle, run: 》        flutter build appbundle --target-platform android-arm,android-arm64 ***隐藏网址*** 》    To split the APKs per ABI, run: 》        flutter build apk --target-platform android-arm,android-arm64 --split-per-abi ***隐藏网址*** 》Initializing gradle...                                              2.3s 》Resolving dependencies...                                          14.2s 》Running Gradle task ’assembleRelease’...                                                  ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\connectivity-0.4.4\android\src\main\java\io\flutter\plugins\connectivity\ConnectivityPlugin.javaʹ�û򸲸����ѹ�ʱ�� API�� 》ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣 》ע: E:\work_tool\flutter\.pub-cache\hosted\pub.flutter-io.cn\url_launcher-5.1.3\android\src\main\java\io\flutter\plugins\urllauncher\WebViewActivity.javaʹ 》�û򸲸����ѹ�ʱ�� API�� 》ע: �й���ϸ��Ϣ, ��ʹ�� -Xlint:deprecation ���±��롣 》Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\baf414ed95f14e507d85c560886dfbe2\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-28\android.jar 》Calling mockable JAR artifact transform to create file: C:\Users\Administrator\.gradle\caches\transforms-1\files-1.1\android.jar\ab096bb3fb172ccb785acdb1058c10a9\android.jar with input E:\work_tool\sdk\android-sdk-windows\platforms\android-27\android.jar 》Request to incrementing alive workforce from 0. Current workforce (dead or alive) 0 》thread-pool size=4 》ProGuard, version 6.0.3 》Reading input... 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program jar (filtered) 》Reading program directory (filtered) 》Reading program jar (filtered) 》Reading library jar (filtered) 》Reading library jar 》Reading library jar ***隐藏网址*** 》Reading library jar 》Reading library jar 》Reading library jar 》Initializing... 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced method ’android.graphics.Insets getSystemGestureInsets()’ in library class android.view.WindowInsets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.embedding.android.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.view.FlutterView: can’t find referenced method ’android.graphics.Insets getSystemGestureInsets()’ in library class android.view.WindowInsets 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Note: io.flutter.view.AccessibilityViewEmbedder$ReflectionAccessors: can’t find dynamically referenced class android.util.LongArray 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Warning: io.flutter.view.FlutterView: can’t find referenced class android.graphics.Insets 》Note: there were 1 unresolved dynamic references to classes or interfaces. 》      You should check if you need to specify additional program jars. ***隐藏网址*** 》Warning: Exception while processing task java.io.IOException: Please correct the above warnings first. 》Thread(Tasks limiter_1): destruction 》Warning: there were 12 unresolved references to classes or interfaces. 》        You may need to add missing library jars or update their versions. 》        If your code works fine without the missing classes, you can suppress 》        the warnings with ’-dontwarn’ options. ***隐藏网址*** 》Warning: there were 2 unresolved references to library class members. 》        You probably need to update the library versions. ***隐藏网址*** 》 》FAILURE: Build failed with an exception. 》 》* What went wrong: 》Execution failed for task ’:app:transformClassesAndResourcesWithProguardForRelease’. 》》 Job failed, see logs for details 》 》* 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. 》 ***隐藏网址*** 》 》BUILD FAILED in 4m 23s 》Running Gradle task ’assembleRelease’... 》Running Gradle task ’assembleRelease’... Done                    264.4s (!) 》******************************************************************************************* 》The Gradle failure may have been because of AndroidX incompatibilities in this Flutter app. ***隐藏网址*** 》******************************************************************************************* 》Gradle task assembleRelease failed with exit code 1

全面理解Gradle - 执行时序

一个像 Ant 一样的非常灵活的通用构建工具 一种可切换的, 像 maven 一样的基于合约构建的框架 支持强大的多工程构建 支持强大的依赖管理(基于 ApacheIvy ) 支持已有的 maven 和 ivy 仓库 支持传递性依赖管理, 而不需要远程仓库或者 pom.xml 或者 ivy 配置文件 优先支持 Ant 式的任务和构建 基于 groovy 的构建脚本 有丰富的领域模型来描述你的构建 如果你本地安装了Gradle,那么你就可以使用gradle命令来直接构建。如果本地没有安装,那么可以通过gradle wrapper来构建,Linux和MAC使用./gradlew,而Windows上面则使用gradlew,还可以在 gradle/gradle-wrapper.properties 中配置 Gradle 版本。 Gradle脚本的执行分为三个过程: ***隐藏网址*** 我们以它的宿主端为例,宿主端有如下几个模块: 其中buildSrc是virtualapk-gradle-plugin,为了便于调试我将其重命名为buildSrc。他们的依赖关系如下: 解释一下,app模块依赖CoreLibrary和buildSrc,CoreLibrary又依赖AndroidStub。为了大家更好理解,下面加一下log。 现在随便执行一个task,比如 ./gradlew clean ,那么将会输出如下日志,大家对比着日志,应该能明白Gradle脚本的执行顺序了吧。 可以看到,Gradle执行的时候遵循如下顺序: 1. 首先解析settings.gradle来获取模块信息,这是初始化阶段; 2. 然后配置每个模块,配置的时候并不会执行task; 3. 配置完了以后,有一个重要的回调 project.afterEvaluate ,它表示所有的模块都已经配置完了,可以准备执行task了; 4. 执行指定的task。

如何将自定义task在gradle系统task运行前后执行

在使用gradle构建android应用的过程中,build tools提供的标准gradle task有时没法满足自己的要求(比如上传、自动构建),或者有些问题需要一些自定义task才可以解决(比如使用自定义task动态修改一些文件),这个时候就需要自定义task并结合标准task一起在构建版本的过程中达到自己的目的,那么如何让自己写的task能放在指定标准task后运行呢?(或者说hack)

以我最近解决的问题为例,因为公司的产品使用了百川的jar包和so文件,但在使用build tools2.2.0的过程中,发现要打包的so文件被构建系统修改了(官方bug,询问无果,暂无解),导致了阿里云推送无法正常工作,于是我编写了一个task,在即将打包时,把正常的so文件替换掉损坏的so文件,实现如下:

  • //开始--》移动正常的so文件到打包目录中  

  • task moveLibToTrip(type: Copy) {  

  • from "bctrouble/armeabi/libsecuritysdk-3.1.27.so"  

  • into "$buildDir/intermediates/transforms/stripDebugSymbol/CouponSimpleChinese/debug/folders/2000/1f" +  

  • "/main/lib/armeabi/"  

  • }  

  • task moveLibToTrip2(type: Copy) {  

  • from "bctrouble/x86/libsecuritysdk-3.1.27.so"  

  • into "$buildDir/intermediates/transforms/stripDebugSymbol/CouponSimpleChinese/debug/folders/2000/1f" +  

  • "/main/lib/x86/"  

  • }  

  • afterEvaluate {  

  • tasks.matching {  

  • it.name.startsWith(’process’) && (it.name.endsWith(’ReleaseJavaRes’) || it.name.endsWith  

  • (’DebugJavaRes’))  

  • }.each { tk -》  

  • tk.dependsOn(moveLibToTrip,moveLibToTrip2)  

  • }  

  • }  

  • //结束  

可以看到,这里实现了task moveLibToTrip,moveLibToTrip2先于以process开头以ReleaseJavaRes或DebugJavaRes结尾的标准task执行(当然还可以写成it.name.equals(***),语法类似Java)

关于gradle task,[Flutter] flutter项目一直卡在 Running Gradle task ’assembleDebug’的介绍到此结束,希望对大家有所帮助。