在Android Studio导入期间维护目录结构

时间:2014-02-14 15:07:01

标签: git import gradle android-studio

我克隆了一个公共github存储库,并尝试将其导入Android Studio 0.4.4。导入工作很好,但它想将所有源复制到新目录并为源创建“app”目录。由于我使用的是公共存储库,因此我想使用repo克隆目录并保持目录结构,以便我可以获得更新并推送更改,而无需每个方向复制文件。

有没有办法告诉Android Studio在导入时保留给定的目录结构?

或者,换句话说,有没有办法跳过gradle转换并按原样导入源?

提前完成。

2 个答案:

答案 0 :(得分:8)

目前我们在Eclipse项目导入中没有选项来保留现有的目录结构。如果您安装了Eclipse的副本,则可以在那里打开它,然后将项目导出到Gradle构建文件;进行就地出口。您必须修改它导出的构建文件,因为它指定了一个非常旧版本的插件。具体来说,您必须更新dependencies.buildscript.classpath语句以指定0.8。+,并且还更新 gradle / wrapper / gradle-wrapper.properties 文件中的distributionUrl属性指定Gradle 1.10。

如果您没有Eclipse,则可以使用此样板文件 build.gradle 来帮助您入门。将其复制到项目的根目录:

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:0.8.+'
    }
}
apply plugin: 'android'

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

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.1"

    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')
    }
}

接下来,将此 settings.gradle 文件放在根目录中。

include ':'

接下来,将 gradlew gradlew.bat 文件以及 gradle 目录从您创建的另一个项目的根目录中复制到在您的项目中安装包装器。

完成了。您现在应该可以在Android Studio中导入它并使用它。

答案 1 :(得分:1)

以下是我将项目从Eclipse ADT转换为Android Studio同时保留git历史记录的步骤:

  1. 将我的项目目录重命名为Project.eclipse
  2. 选择“从非Android Studio项目导入”
  3. 为目标目录提供原始项目名称(它将创建特定于目录并使用该名称的文件)
  4. 完成转换后,请确保它已编译。
  5. 关闭Android Studio
  6. 将新项目目录重命名为Project.astudio
  7. 将原始Eclipse ADT项目目录重命名回原始目录名称
  8. 读取导入器创建的import-summary.txt文件,并使用git命令重新创建它手动列出的所有更改(通常包括将AndroidManifest.xml以及source和res文件移动到新目录中路径
  9. 将.gitignore文件更改为如下所示:

    .gradle
    /local.properties
    /.idea/workspace.xml
    /.idea/libraries
    .DS_Store
    /build
    /app/build
    
  10. 比较目录并将新项目中不属于旧项目的任何文件复制回(通常是gradle和idea文件),然后“git add”它们。不要忘记任何新创建的子项目中的build.gradle文件(至少包括一个主应用程序)

  11. 使用git命令从原始项目中删除任何不存在于新项目中的文件,而不是故意放在那里(即保留README和LICENSE文件等,但是要记住剩余的eclipse之类的东西项目数据)
  12. 在上述过程中经常使用“git status”来查看匹配/不匹配的内容,并根据需要添加git add或git rm。
  13. 尝试在Android Studio中打开项目,确保它正确打开,并且构建它。如果一切都结束了......
  14. 关闭Android Studio
  15. git commit
  16. 这听起来像是一个漫长的过程,但它会让你保持历史的完整性,同时让你利用新的目录结构,这对我来说非常有用。