美文网首页
Flutter项目在Android工程打包失败

Flutter项目在Android工程打包失败

作者: JohnsonZzzz | 来源:发表于2021-04-06 14:31 被阅读0次
    Caused by: org.gradle.process.internal.ExecException: Process 'command '/Users/Macx/Documents/flutter/bin/flutter'' finished with non-zero exit value 1
        at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:409)
        at org.gradle.process.internal.DefaultExecAction.execute(DefaultExecAction.java:38)
        at org.gradle.process.internal.DefaultExecActionFactory.exec(DefaultExecActionFactory.java:145)
        at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1117)
        at org.gradle.api.internal.project.DefaultProject.exec(DefaultProject.java:1112)
        at org.gradle.api.Project$exec$6.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:115)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127)
        at BaseFlutterTask.buildBundle(/Users/Macx/Documents/flutter/packages/flutter_tools/gradle/flutter.gradle:904)
        at BaseFlutterTask$buildBundle.callCurrent(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:156)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:160)
        at FlutterTask.build(/Users/Macx/Documents/flutter/packages/flutter_tools/gradle/flutter.gradle:1025)
    

    编译错误有时候不是代码问题,可能是编译器的问题。
    在一顿摸索后第一次解决这个方法是:
    1.删掉pubspec.lock
    2.重新pub get
    3.在flutter项目里打开Android工程
    4.build signed Apk
    打包成功。

    但还没完,后来又遇到了,再一次按照上面的方法来打包,失败!有毒啊。怕的不是出现错误,而是出现错误后线索无法跟踪,咱没能找到错误原因,然后猜想-验证-再猜想-再验证... 这就是没能充分理解整个编译过程的苦吧。OK,一顿操作猛如虎,在上述方法中加入了一条3.Flutter运行一下 变成这样:
    1.删掉pubspec.lock
    2.重新pub get
    3.Flutter运行一下
    4.在flutter项目里打开Android工程
    5.build signed Apk
    打包成功!谢天谢地,写代码居然要靠祈祷来盼成功...

    好日子不长,没错,这次我又遇到了,上面以为靠谱的方法执行完后,依然失败,天呐。再来!老子跟你干到底!猜想-验证 走起!很幸运,确实又给我发糖果了,这次又增加了一条:
    0.先在一个新建的项目按照以上步骤编译一下,新项目能成功的话再往下走。
    1.删掉pubspec.lock
    2.重新pub get
    3.Flutter运行一下
    4.在flutter项目里打开Android工程
    5.build signed Apk
    成功!F**k。这也太迷了吧!总感觉这事还没完,先做个记录吧,问题的根源是什么我也不清楚。

    ---------------------------------------分割线--------------------------------------------------
    我找到问题的根源了,像这类问题(错误信息里看不到具体错误),可以在Terminal里边打如下命令

    ./gradlew compileDebugSource --stacktrace -info
    

    我得到的信息是i18n.dart这个文件的变量找不到,但具体为什么我也说不清楚,应该是编译器的bug吧,这个文件是自动生成的。替换掉我引用的变量就编译成功了

    相关文章

      网友评论

          本文标题:Flutter项目在Android工程打包失败

          本文链接:https://www.haomeiwen.com/subject/zkbskltx.html