android - 如何在不创建 repo 的重组副本的情况下将 eclipse 项目导入 Android Studio?

标签 android android-studio eclipse-adt

我有一个目前在 Eclipse 中开发的 Android 项目。我想过渡到 Android Studio,同时又不失去回退到 Eclipse 的能力。

当我导入“非 android studio 项目”时,会制作我的存储库的副本,并且我的目录结构会重新组织以符合 gradle 风格。

我的问题是,如何在不重新组织目录结构的情况下就地导入我的存储库?

最佳答案

您需要手动设置您的 build.gradle 文件。然后,当您导入 Android Studio 时,它会看到 build.gradle 文件并使用它,而不是经过重组过程。

这是一个起始 build.gradle 文件,您可以将其放入 Eclipse 项目目录:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.0.0'
    }
}

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
}

android {
    compileSdkVersion 19
    buildToolsVersion "21.1.2"

    sourceSets {
        main {
            manifest.srcFile 'AndroidManifest.xml'
            java.srcDirs = ['src']
            resources.srcDirs = ['src']
            aidl.srcDirs = ['src']
            renderscript.srcDirs = ['src']
            res.srcDirs = ['res']
            assets.srcDirs = ['assets']
        }

        // Move the tests to tests/java, tests/res, etc...
        instrumentTest.setRoot('tests')

        // Move the build types to build-types/<type>
        // For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
        // This moves them out of them default location under src/<type>/... which would
        // conflict with src/ being used by the main source set.
        // Adding new build types or product flavors should be accompanied
        // by a similar customization.
        debug.setRoot('build-types/debug')
        release.setRoot('build-types/release')
    }
}

您需要调整的主要内容是:

  • compileSdkVersion,它应该与您用于 Eclipse 的构建目标相匹配(请参阅您的 project.properties 文件)

  • buildToolsVersion,它应该引用您在 SDK 管理器中安装的“Build-tools”(其中 “21.1.2” 是当前-最新版本)

之所以有上面的注释是因为文件开头是从Eclipse导出的,就好像你在当前的ADT插件上一样,你可以导出一个build.gradle文件。但是,该插件已经有一段时间没有更新了,我预计它生成的 build.gradle 文件将在很大程度上被破坏。

您可能还希望设置一个基本的 Gradle 包装器,以平滑导入过程。为此,请在 Eclipse 项目根目录下创建一个 gradle/wrapper/gradle-wrapper.properties 文件,其中包含以下内容:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.2.1-all.zip

这里最重要的是 distributionUrl,它指向官方的 Gradle 发行版,特别是 Android Studio 1.0 和 Gradle for Android 1.0 喜欢的 2.2.1。

因此,将这两个文件添加到您的 Eclipse 项目中,然后 Android Studio 应该就地导入,无需任何文件重组。

可以看到a few hundred projects以这种方式设置。

关于android - 如何在不创建 repo 的重组副本的情况下将 eclipse 项目导入 Android Studio?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27495316/

相关文章:

javascript - API 17 : Action Bar implemented but not appear - Android Studio

android-studio - 在 Android Studio 中刷新 Gradle 时出错 - Ubuntu

android - 无法将 Jackson 库添加到我的 android 项目

android - 在 Android 中单击按钮时播放声音

android - 如何替换 Google 云端硬盘中的文件?

java - 2 个 vector 相减的方向

android - XMPP 交货收据 XEP-0184 与 ASMACK

android - 我一直试图在Kotlin中使用For Loop来过滤此JsonObject

android - 找不到Android Studio Gradle DSL方法: 'android()'

android - 为 eclipse 配置 ADT 插件——首选项中没有 Android 选项