【问题标题】:Can't add module dependency to CordovaLib for Cordova project using Android Studio无法使用 Android Studio 为 Cordova 项目添加模块依赖项到 CordovaLib
【发布时间】:2015-03-14 11:57:18
【问题描述】:

我不知道如何在 Android Studio 中将 CordovaLib 目录添加为模块依赖项。

(注意:这是我第一次使用 Android Studio,所以可能我只是不知道自己在做什么)

我正在使用:

  • OSX 优胜美地
  • Android Studio 1.1.0
  • 科尔多瓦 4.3

以下是我采取的步骤:

  1. 创建新的 cordova 项目
  2. 添加android平台和一些cordova插件
  3. 将生成的项目导入 Android Studio(注意:当它询问 gradle 包装器时,我说不,只是将其指向我安装 gradle 的位置 - /usr/local/Cellar/gradle/2.2.1/libexec
  4. 尝试构建 - 此时它会抱怨 cannot find symbol class CordovaPlugin 的几个 Cordova 插件

显然它不知道CordovaLib 子项目。 这就是我要解决的问题。

我不知道如何告诉 Android Studio CordovaLib 是一个模块依赖项。

我已进入 Project Structure 窗口,但看不到任何链接到 CordovaLib 的方法。

单击“+”按钮不会执行任何操作。如果我做错了什么,我无法解决,或者导入项目时Android Studio中存在错误......

谁能确认我做错了什么?

或者请确认他们是否能够使用 Cordova 4.3Android Studio 1.1.0 将 Cordova 生成的项目导入 Android Studio。

谢谢!

【问题讨论】:

  • cordova 还不支持android studio,他们会在cordova android 4.0 上添加支持
  • @jcesarmobile - 你从哪里得到的?据我所知,现在有 Android Studio 支持。 Cordova CLI 生成与 Gradle 以及 .gradle 构建脚本一起使用的项目结构。它可以很好地导入 Android Studio,并且应该可以正常工作。我的问题似乎与 Android Studio 本身有关 - 在尝试设置模块依赖项时,“项目结构”对话框似乎有问题。
  • @jcesarmobile - 实际上你是对的。当使用 master 分支中的 cordova-android 时,它会自动正确地将 CordovaLib 设置为模块依赖项。不知道为什么我不能手动操作...
  • 我在 Cordova 开发者邮件列表中看到了这篇文章

标签: android cordova android-studio cordova-plugins cordova-cli


【解决方案1】:

首先,感谢@jcesarmobile 让我走上正轨。

这里是如何通过 Android Studio 直接使用来自 Github 的最新 cordova-android (4.0.0-dev):

  1. 克隆cordova-android repo:

    git clone git@github.com:apache/cordova-android.git
    
  2. 将平台添加到您的 cordova 项目中

    cordova platform add /path/to/cloned/repo/cordova-android
    
  3. 构建项目

    cordova build android
    
  4. 作为非 android-studio 项目导入 Android Studio

【讨论】:

  • 我无法在 Android Studio 中使用比 cordova-android 4.0.0-dev 更早的版本。这可能是可能的,但要花很多时间,所以我放弃了。我将我的项目更新为 cordova-android 4.0.0-dev,发现它非常稳定。我发现的唯一问题是新的“白名单”功能,它需要在您的项目中安装 cordova-plugin-whitelist 插件。
  • 如何更新到开发版?这样? cordova 平台更新 /path/to/cloned/repo/cordova-android 我害怕使用开发版本... :) 感谢您的反馈!再见
  • 是的,如果您直接从 github 存储库添加 cordova-android,那么您将使用开发版本。 (目前是 4.0.0-dev)。你也可以这样做:cordova platform add https://github.com/apache/cordova-android.git
  • 我发现,当您导入整个 Cordova 项目时,不仅包括 platforms/android 文件夹,还包括 Cordova 库。但在那之后,Android Studio 表示,它不再使用 gradle 进行构建。但毕竟,您可以构建您的项目。你怎么看?这是正确的方法吗?
  • @23tux,嗯不确定我是否完全理解。如果您的意思是您将根 cordova 目录添加到 Android Studio - 这不会很好 - 您应该只将生成的 android 项目添加到 platforms/android。添加生成的项目还将包括 Cordova Lib 子项目,Android Studio 应自动将其配置为依赖项。从那时起,Android Studio应该使用 Gradle 进行构建 - 你想要那样,因为 Cordova 人提供了一个 build.gradle 文件,我们希望使用他们的构建过程。
【解决方案2】:

我有同样的问题,是因为加载模块 CordovaLib 时出错。你必须做这两个步骤:

1.- 在根文件 (Android) 中添加一个名为“settings.gradle”的文件,其内容为:

include ':CordovaLib'
project(':CordovaLib').projectDir = new File('CordovaLib')

2.- 转到文件“build.gradle”并找到这部分:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    // SUB-PROJECT DEPENDENCIES START
    // SUB-PROJECT DEPENDENCIES END
}

并将其更改为:

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':CordovaLib')
    // SUB-PROJECT DEPENDENCIES START
    // SUB-PROJECT DEPENDENCIES END
}

现在您只需运行项目。

【讨论】:

  • settings.gradle 是自动生成的文件。
猜你喜欢
  • 2012-08-22
  • 2018-11-21
  • 1970-01-01
  • 2015-05-10
  • 2015-12-09
  • 2019-04-11
  • 2014-08-26
  • 1970-01-01
  • 2014-10-06
相关资源
最近更新 更多