【问题标题】:Adding external Android and Java projects to Android projects in Android Studio在 Android Studio 中将外部 Android 和 Java 项目添加到 Android 项目
【发布时间】:2013-05-25 23:26:27
【问题描述】:

因此,我们一直在从 Eclipse 迁移到新的 Android Studio IDE(知道它是早期发布版本)。一切都很精彩,直到昨天我们更新到 0.1.1,它删除了 Project Structure UI 界面,取而代之的是一条告诉我们使用 gradle 的消息。

所以我们开始阅读文档、SO 帖子并观看了Google I/O presentation。我们仍然不明白这是如何工作的。

我们已经阅读了this user guide,并且,就像我说的,无数的 SO 帖子。但无法让它发挥作用。

所以我们有 2 个项目。它们都是Android项目。两者都使用外部项目。其中一个使用 Facebook Android SDK,另一个使用自定义的直接 java 项目。 Java 项目不断更新。
Java 项目是在 Eclipse 中创建的,并且具有该文件夹结构。
这两个 Android 项目都是在 Android Studio 中全新创建的。我们如何做到这一点?

库项目是否需要自己的 build.gradle 文件?
库项目是否需要与我们的 Android 项目放在同一文件夹中?

根据这些问题的答案,build.gradle 和 settings.gradle 文件应该是什么样子?

[编辑]
澄清:

事实:
Android 项目 A 需要使用 Facebook SDK 外部库
Android 项目 B 需要使用我在 Eclipse 中创建的外部 java 项目
项目 A 和 B 都是在 Android Studio 中创建的

问题:
● Project A build.gradle 文件中需要添加什么内容?
● Facebook SDK 需要放在哪里?
● Facebook SDK 是否需要 build.gradle 文件?如果是这样,它需要说什么?

● 项目 B 的 build.gradle 文件需要添加什么内容?
● java项目需要去哪里?
● 这个java 项目需要build.gradle 文件吗?如果是这样,它需要说什么?

● Facebook SDK 或 java 项目是否需要 settings.gradle 文件?

【问题讨论】:

    标签: java android gradle android-studio


    【解决方案1】:

    转到http://tools.android.com/tech-docs/new-build-system,从页面底部下载名为gradle-samples-0.4.2.zip的zip

    检查 libsTest 示例

    设置 gradle 构建文件后,您需要为 Android Studio 做额外的工作,因为它不会从 build.gradle 中获取更改

    【讨论】:

      【解决方案2】:

      您编译的每个项目、模块或库都需要一个 build.gradle 文件。

      最简单的Android项目有如下build.gradle:

      buildscript {
          repositories {
              mavenCentral()
          }
      
          dependencies {
              classpath 'com.android.tools.build:gradle:0.3'
          }
      }
      
      apply plugin: 'android'
      
      android {
          compileSdkVersion 17
      }
      

      如果您从 Eclipse 导入项目,则应添加该行以匹配项目结构:

      android {
          sourceSets {
              main {
                  manifest.srcFile 'AndroidManifest.xml'
                  java.srcDirs = ['src']
                  resources.srcDirs = ['src']
                  aild.srcDirs = ['src']
                  renderscript.srcDirs = ['src']
                  res.srcDirs = ['res']
                  assets.srcDirs = ['assets']
              }
      
              instrumentTest.setRoot('tests')
          }
      }
      

      您可以像这样添加来自其他项目或文件的依赖项:

      dependencies {
          compile file('libs/adnroid-support-v4.jar')
          compile project(':libraries:actionbarsherlock')
      }
      

      有关更多信息,您可以查看文档here

      【讨论】:

      • 好吧,就像我说的那样,我已经阅读了该文档。上面的代码只是从中复制粘贴。我仍然不知道如何构建项目。我可以将 Eclipse 项目导入 AS 并在没有任何 build.gradle 文件的情况下运行它们,这是不推荐的。
      • 它还说:“这是 Android 特定的,不适用于 Java 源集。”
      • sourceSet闭包必须在android内部,否则认为是java插件闭包
      • 您的解决方案指出,如果我有两个使用 actionbarsherlock 的项目,我必须有两个 actionbarsherlock 项目的副本作为每个项目的子文件夹。我认为这里的主要问题是我想在这里理解的内容:stackoverflow.com/questions/17479076/…
      • 我想你可以参考外部文件夹。例如'../../libraries/ABS'。也许您可以使用完整的路径。
      猜你喜欢
      • 1970-01-01
      • 2013-09-02
      • 2013-07-02
      • 1970-01-01
      • 1970-01-01
      • 2023-01-20
      • 2012-05-03
      • 2011-02-06
      相关资源
      最近更新 更多