ionic2Ionic +面试能力提升

ionic build报错unable to find attr

2018-05-31  本文已影响447人  YuRi_1

前面项目打包一直没问题,29号打包,在没改任何代码的情况下,build出现错误:


QQ图片20180531102012.png

发现build的时候,下载了一些东西,当时没注意看:

Download https://maven.google.com/com/android/support/support-v4/27.0.0/support-v4-27.0.0.pom
Download https://maven.google.com/com/android/support/customtabs/27.0.0/customtabs-27.0.0.pom
Download https://maven.google.com/com/android/support/support-compat/27.0.0/support-compat-27.0.0.pom
Download https://maven.google.com/com/android/support/support-media-compat/27.0.0/support-media-compat-27.0.0.pom
Download https://maven.google.com/com/android/support/support-core-utils/27.0.0/support-core-utils-27.0.0.pom

后来发现群里很多了出现了此问题,查资料,说是google升级了V4包,有些插件不兼容。
经过2天的搜索和排查,试过了无数方法,有的开发者通过各式各样的方法解决了,而我的,一直没解决,还是抱同样的错误。后来发现:

罪魁祸首是如下2个插件:
phonegap-plugin-barcodescanner
cordova-plugin-file-opener2

这2个插件用的是v4:+,而更新后需要用v4:23+以上版本才能编译打包


直接上解决办法:

1.如果你的项目没有用这2个插件但是报了同样的错误
解决方法:(以下方法来源于网络)
(1) 把flatforms/android/project.properties文件里的cordova.system.library.X的版本改为23.+以上,比如

cordova.system.library.2=com.android.support:support-v4:24.1.1+

重新build。

(2)添加插件ionic cordova plugin add cordova-android-support-gradle-release --save后重新build。

(3)在flatforms/android/build.gradle的dependencies后加上

configurations.all {
    resolutionStrategy {
        force 'com.android.support:support-v4:27.1.0'
    }
}

后重新build。

2.如果你的项目用到了这2个插件中的一个或者2个
首先删除这2个插件,然后:
(1)phonegap-plugin-barcodescanner
首先确认你的cordova和cordova-android版本,插件使用依赖版本如下:

  "engines": {
    "cordovaDependencies": {
      "<7.0.0": {
        "cordova-android": "<6.3.0",
      },
      "7.0.0": {
        "cordova-android": ">=6.3.0"
      },
      "7.1.0": {
        "cordova-android": ">=6.3.0",
        "cordova": ">=7.1.0"
      },
      "8.0.0": {
        "cordova-android": ">=6.3.0",
        "cordova": ">=7.1.0"
      }
    }
  },

举个例子:比如我的项目cordova版本是6.5.0,cordova-android版本是6.1.2,
那我就去下载7.0.0版本以下的
ionic cordova plugin add phonegap-plugin-barcodescanner@6.0.8

tips:如果想下载高版本的,但是通过ionic cordova plugin add phonegap-plugin-barcodescanner下载的明显不是github上的最新版本,可以尝试用ionic cordova plugin add https://github.com/phonegap/phonegap-plugin-barcodescanner.git命令来下载

好,首先确认了自己需要下载的版本,build试试,如果还是报同样的错,把你需要下载的版本整个下载到本地(github点releases,再点击你所需要下载的版本号,就可以进去所需版本的源码了,我下载的6.0.8版本)
下载下来后,找到phonegap-plugin-barcodescanner-6.0.8\src\android下的barcodescanner.gradle文件,将 compile 'com.android.support:support-v4:+'
改成 compile 'com.android.support:support-v4:24.1.1+',改完保存后添加本地插件
比如:ionic cordova plugin add E:\ionic2\phonegap-plugin-barcodescanner-6.0.8

(2)cordova-plugin-file-opener2
这个插件依赖没有那么多版本限制

直接去github把插件下载到本地,将插件的plugin.xml文件第
34行的 <framework src="com.android.support:support-v4:+" />改成 <framework src="com.android.support:support-v4:24.1.1+" />
改完保存后同样添加本地插件
ionic cordova plugin add E:\ionic2\cordova-plugin-file-opener2-master

至此,修改完成,重新build即可打包成功
上一篇下一篇

猜你喜欢

热点阅读