记录被安卓环境坑了3天的经历

不知为何,中途跑去使用Android Studio开发了一段时间,之前的基于Angular2+Ionic2开发的项目打包时就一直报错,根据错误提示各种搜索解决方案还是无济于事,没办法只能把新建项目,把代码拉下来重新配置环境。

记录一下填坑步骤:

1.JAVA环境:版本是1.8,很早就配置好了,这个没问题。

2.Android SDK环境:之前是随便配的,后来使用Android Studio下载了sdk,所以后来使用了这个sdk。

 1)查看SDK路径:在Android Studio->Tools->SDK Manager->Android sdk Location中 

2)配置sdk路径:打开terminal终端,输入open .bash_profile,配置以下环境:

export ANDROID_HOME=/Users/duanjinlong/Library/Android/sdk

export PATH=${PATH}:$ANDROID_HOME/tools
export PATH=${PATH}:$ANDROID_HOME/platform-tools 

3.安装或初始化npm

npm init

4.安装cordova:

cnpm install -g cordova

查看版本: 

cordova -v

5.安装ionic:

cnpm install -g ionic

查看版本:  

ionic -v

初始inoic:

ionic init

6.运行项目:

ionic serve -l

7.添加平台:

ionic cordova platform add android

添加完平台后app目录下会多了一个 platforms 文件夹 (可能会出现各种错误,根据错误提示一个一个解决)

错误1:

Version of installed plugin: “cordova-plugin-file@4.3.3” does not satisfy dependency plugin requirement

解决方案:

运行命令:

ionic cordova plugin add cordova-plugin-file
npm install --save @ionic-native/file@4.3.3
 
ionic cordova plugin add cordova-plugin-file-transfer --force
ionic cordova plugin add cordova-plugin-file-transfer@4.3.3

然后修改项目目录下的plugin/cordova-plugin-file的package.json文件中的:

将5.0.0修改为4.0.0,我猜想是cordova>100后就要求依赖file文件要大于5.0.0,我改成4.0.0就ok了。

"engines": {
    "cordovaDependencies": {
      "4.0.0": {
        "cordova": ">100"
      }
    }
  },

 

8.下载打包必备的gradle插件:

http://services.gradle.org/distributions/下载比较新的版本 (需要是带-all的压缩包)

不解压直接放在platform/android/gradle文件夹下。

注意:新项目没有gradle这个文件夹,需要新建一个,文件名不要写错。

修改配置:

将下图目录中的ProjectBuilder.js文件中代码

 'https\\://services.gradle.org/distributions/gradle-2.14.1-all.zip' 

修改为:(名字为下载的压缩包的全名)

'../gradle-5.4.1-all.zip'

同样:将下图目录中的gradle-wrapper.properties文件进行同样修改

若不能在代码中直接修改,可右键Reveal in Finder定位到文件夹中再修改,最后保存关闭。

9.打包

 ionic cordova build android

成功后会显示输出位置:

 

 

 

 

遇到的问题:

1.版本问题:

cordova-platform-android、android sdk、gradle有很多版本,不知道三者如何匹配版本,导致中途出现各种错误,

最后决定全部升级为最新版:

Installed platforms:
android 8.1.0

android sdk : 28.0.3

distributionUrl=../gradle-5.1.1-all.zip

2.打包后的程序不能访问网络:

程序首先成功加载了高德地图,但是无法从服务器获取数据,网上有两种解决办法。

(1)安装或重新安装插件:

cordova plugin rm cordova-plugin-whitelist  (如果已经安装,先卸载)
cordova plugin add cordova-plugin-whitelist

(2)重新加载http组件:

ionic cordova plugin add cordova-plugin-advanced-http
npm install --save @ionic-native/http

网上也有说安卓9.0会后http不能访问网络了,目前还没有尝试过。

3.若遇到带有EACCES、permission denied等关键字的错误,一般是没有管理员权限,在命令前加上sudo即可。

Error: EACCES: permission denied,

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值