flutter,sdk<=1.12.13+hotfix9版本,生成aar文件会报错“...flutter_tools/gradle/aar_init_script.gradle‘ line: 19”

如题,在混合开发中,flutter sdk版本<=1.12.13+hotfix9时生成aar文件报错

“Where:
Initialization script '/Users/mac/workSpace/02_development/flutter/packages/flutter_tools/gradle/aar_init_script.gradle' line: 19

* What went wrong:
project ':connectivity_for_web'”

 

直接上解决方法

1、找到该项目中dart package所在的位置,

2、进入该包的上一级目录pub.dartlang.org,进入该目录,删除具体的插件包含macos或者web或者linux、windows的版本包,

如图,删除3个库。再按照这个步骤,从上往下找这个目录下所有的库,找到带有
xxx_web、xxx_macos、xxx_linux、xxx_windows的库,全部删除掉。(新版的flutter sdk解决了这个问题,需要换掉aar_init_script.gradle文件,说来话长,不说了。)

3、再运行。

 

还有更加简单的方法(因为我们不可能每次都去手动删除,很麻烦,每次get都会生成一次):

直接写个脚本:android_delete_useless_lib.sh

echo '根据自己的flutter目录中的依赖库地址进行配置'
path='/Users/mac/workSpace/02_development/flutter/.pub-cache/hosted/pub.flutter-io.cn'

cd $path/
find . -name '*_macos-*' -type d -exec rm -rf "{}" \;
find . -name '*_linux-*' -type d -exec rm -rf "{}" \;
find . -name '*_web-*' -type d -exec rm -rf "{}" \;
find . -name '*_windows-*' -type d -exec rm -rf "{}" \;

其中,红色的path就是刚才上面提到的这些库所在的目录,即你自己的flutter库的目录,更改之后,再在Terminal终端执行这个脚本:

sh android_delete_useless_lib.sh

执行之后那些没用的库自动就删除了。

 

============我是分割线=============

另外,在flutter混合开发时,很多同事都需要执行很多命令,如:

flutter build aar --no-debug --no-profile --target-platform android-arm,android-arm64

./gradlew clean

./gradlew assembleRelease

...

第三条命令是通过中间库去生成aar的命令。。。

那么综上,我们也可以编写一个脚本:android_aar_build.sh

echo '删除无用的库文件...'
./android_delete_useless_libs.sh
echo '库文件删除完毕...'

echo '开始编译flutter aar'

flutter clean

flutter packages get

flutter build aar --no-debug --no-profile --target-platform android-arm,android-arm64

echo '开始编译hellotalk flutter aar'

# 进入到kiitflutterlib项目下
cd ../kiitflutterlib

# 首先删除build文件夹
echo '删除build文件夹'

delete ./flutter/build

echo '执行 ./gradlew clean'
./gradlew clean

echo '执行 ./gradlew assembleRelease'
./gradlew assembleRelease

open ./flutter/build/outputs/aar

echo '将flutter-release.aar复制到宿主项目中指定目录...'
#直接复制生成的aar文件到主app指定目录下去
#其中 my_flutter_app 文件夹需要改成你们自己目录的宿主项目名称
cp ./flutter/build/outputs/aar/flutter-release.aar ../my_flutter_app/flutter_new_project/
echo '执行完成'

保存,直接可以执行:

sh android_aar_build.sh

注意其中红色的位置,第一个是表示我们刚才提到的删除无用库的脚本,后面的红色位置则表示我们自己的项目名称或者宿主项目等,按照自己的项目来修改即可。

 

完毕。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值