Mac下Android Studio导入第三方jar包的坑

最近在将开发环境从Eclipce迁移到Android Studio,同时也尝试了一下最近火的一逼的PhoneGap。一路上遇到了许多坑,这里给大家都记录一下,方便大家不遇到同样的问题。

PhoneGap的官方文档只给了怎么在Eclipse下怎么去搭建一个PhoneGap的应用,没有讲述怎么在Android Studio里的。

当然两者的步骤都是差不多的,唯独遇到的不爽实在导入PhoneGap的jar包的时候,你需要做一下几件事情:

  1. 复制cordova-2.9.0.jar到libs目录下
  2. 右键cordova-2.9.0.jar,点击Add as Library...
如果这个时候你就来世运行这个Project的话,会报 Gradle: 软件包 com.apache.cordova 不存在,这是因为Android Studio使用的是Gradle来管理整个项目的,打开项目目录下的build.gradle文件,你能看见这样一个界面



我们可以在dependencies里面看见compile files,studio默认加入了android.jar 包的编译,这里我们需要手动加上



这个时候运行是没有什么问题的,编译能通过,但是当app在手机或者模拟器上面的跑的时候,会提示找不到引用了DroidGap的那个class,如果你通过Intent启动这个DroidGap的时候会出现异常,并强制退出。
造成这个问题的原因还是Gradle,你需要在Terminal下cd到这个项目的根目录里面,然后运行./gradlew clean && ./gradlew build 等待片刻,再开始运行这个android项目,就不会有问题了。
感觉像是我们在第一次编译的时候gradle产生了一个缓存之类的东西,造成了这个问题,清理一下并重新build就会消失了。
通过eclipse创建的项目,导入到Android Studio不会发生第三方jar无法识别的现象,因为eclipse使用的是ant构建并管理的整个项目,不过至于为什么gradle会产生这样的问题,还有待进一步去研究这个工具,到目前为止还看不见这个gradle有什么强大的,但是谷歌官方既然推荐这个东西,必然是有他的道理的,或者说谷歌在下一盘很大的棋吧~

你可能感兴趣的:(android,gradle,jar,Studio)