【问题标题】:External library dependency under Android StudioAndroid Studio下的外部库依赖
【发布时间】:2015-07-25 22:12:01
【问题描述】:

我的 Android Studio 项目结构如下:

/mysdk
  -manifests
  -java
     -com.xxx.sdk
     -ext-libs
       -com.yyy.lib (not .jar but .java files instead)
  -res
/app
 -manifests
 -java
 -res

我可以在 Eclipse 项目中包含 com.yyy.lib.* inisde com.xxx.sdk 并引用所有方法,而不会出现任何符号解析问题。

但是在我将我的 IDE 从 Eclipse 转移到 Android Studio 之后,它告诉我它无法解析来自 com.xx.sdk 中的 com.yyy.lib 的符号/方法(例如:com.xxx.sdk.Activty.java)

如何在 Android Studio 中解决这个依赖问题?

【问题讨论】:

  • 你能分享完整的文件视图,而不是 Android 项目视图,这可能会有所帮助。可能是您的配置与 gradle 约定不同,并且没有将 com.yyy.lib 作为您的来源的一部分。
  • 我认为您还需要明确com.yyy.lib 是需要与您的mysdk 项目一起编译的源文件。您得到的答案是解释如何将预编译的库(作为 jar)放入您的项目中。

标签: java android eclipse android-studio


【解决方案1】:

这是因为 Android Studio 使用 Gradle 作为其依赖管理器,而 Eclipse 使用 Maven 或 Ant。

您可以阅读有关使用 Gradle 管理依赖项的更多信息,here

This answer 解释了如何在 Android Studio 中向 Gradle 添加依赖项/库。

【讨论】:

  • Gradle下如何设置这种依赖?
  • 我曾尝试将编译项目(“ext-libs”)放入 Module:mysdk 的 build.gradle 中,但它告诉我在项目 ':mysdk' 中找不到“ext-libs”
  • 你能完整地发布你的 build.gradle 文件吗?
【解决方案2】:

在您的项目文件浏览器中:

转到 libs 文件夹。如果不存在,请添加您的库

然后在 gradle 中:在依赖项中添加
compile files('libs/your_library')
然后 Sync Gradle

【讨论】:

    【解决方案3】:

    如果您对com.yyy.lib 的位置没有强烈偏好,只需将其移动到父级(是src/main/java?基于gradle 约定)它可能会被拾取。

    IDE 似乎将 src/main/java(或其他)视为源文件夹,并且您的包路径与您的目录结构不匹配

    ext-libs.com.yyy.lib 而不是com.yyy.lib

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-01
      • 2014-06-17
      • 1970-01-01
      • 1970-01-01
      • 2018-11-29
      相关资源
      最近更新 更多