Android Studio 运行shell 脚本踩坑记录

这几天拿到了一款以前开发完成的项目,是音箱的项目,很有意思,然后就开始尝试看看。sdk打包是用shell脚本写的,对于没有接触过shell的菜鸡来说。跑个 打包的shell都很费劲,记录一下坑和解决办法。

忽略某个文件 在 app -> build 下
packagingOptions {
    exclude 'notice.html'
}

shell脚本是以  .sh 结尾的文件。一般放在项目根目录下我们的打包shell 名字叫做 release.sh

网上搜了一下 在linux下 直接可以运行shell脚本,mac 是基于 Unix的 可以直接运行shell脚本

首先在 Android Studio的控制台 Terminal 敲一下ls 来看一下是否有要运行的脚本文件

然后直接    ./release.sh  执行脚本

嗯然后嗖一下 

Permission denied :./release.sh
嗯 解决吧 两种方式

这种错误是因为权限问题,重新设置一下权限就可以运行
libs chmod 777 release.sh

或者可以 

chmod +x ./release.sh  使脚本具有执行权限

再次运行 很意外 

bash: ./release.sh: /bin/bash^M: bad interpreter: No such file or directory
继续解决

使用 vim命令操作,网上看了半天,我比较菜 不容易理解,还是自己总结一下 方便自己。。

首先 敲  vim release.sh

直接在控制台显示出文件的内容,然后查看文件格式

: set ff  

最后一行会显示

  fileformat=dos

正确的应该是这样
  fileformat=unix

转格式

:set ff=unix

不要忘记保存 

:wq

然后就可以了在运行看看,小崩溃

错误又来了

./release.sh: line 19: ./gradlew: Permission denied
./release.sh: line 11: ./gradlew: Permission denied
这是脚本里面用 gradlew打包呢,但是没有权限

网上解决办法链接过去看看

大概说

原因在于gradlew文件没有可执行属性,可以使用命令

ls -l path/filename

来列举文件的已有属性。

之后,使用下列命令为文件添加可执行属性即可:

chmod +x gradlew

但是我

没办法继续解决吧

由于这个项目比较老,所以 ndk的东西 没有,我当时导入的时候比较懒直接手动把目录替换了

提前埋坑了。。。。 错误

No toolchains found in the NDK toolchains folder for ABI with prefix: mipsel-linux-android

解决办法

就是把当前少什么 就复制过来。

然后再敲。。。。。

./gradlew clear
bash: ./gradlew: Permission denied
这个错不是没有权限吗 给一下试试。

chmod +x gradlew

如果不行再试试 git update-index --chmod=+x gradlew

再试一下

 ./gradlew clear
env: bash\r: No such file or directory
嗯嗯 跟之前一样了。

vim解决它

vim gradlew
:set ff

:set ff=unix

:wq

再敲一下 可以了。

试试 命令打包把

终于动了,不容易啊。记录一下 这个坑真深。

发布了20 篇原创文章 · 获赞 5 · 访问量 9501

猜你喜欢

转载自blog.csdn.net/Small_Wave_Wave/article/details/88948247