【问题标题】:Maintaining directory structure during Android Studio import在 Android Studio 导入期间维护目录结构
【发布时间】:2014-09-24 23:29:46
【问题描述】:

我已经克隆了一个公共 github 存储库,并正在尝试将其导入 Android Studio 0.4.4。导入效果很好,但它想将所有源代码复制到一个新目录并为源代码创建一个“app”目录。由于我使用的是公共 repo,我想使用 repo 克隆目录并保持目录结构完整,这样我就可以获取更新和推送更改,而不必以任何方式复制文件。

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

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

提前感谢。

【问题讨论】:

    标签: git import gradle android-studio


    【解决方案1】:

    目前我们在 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 ':'
    

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

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

    【讨论】:

    • 您好先生,您能帮我解决我的问题here 吗?谢谢... :)
    【解决方案2】:

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

    1. 将我的项目目录重命名为 Project.eclipse
    2. 选择“从非 Android Studio 项目导入”
    3. 为其指定目标目录的原始项目名称(它将创建特定于目录的文件并使用该名称)
    4. 完成转换后,确保它可以编译。
    5. 关闭 Android Studio
    6. 将新项目目录重命名为 Project.astudio
    7. 将原来的 Eclipse ADT 项目目录重命名回原来的目录名
    8. 通读导入器创建的 import-summary.txt 文件,并使用 git 命令手动重新创建它列出的所有更改(通常包括将 AndroidManifest.xml 以及源文件和 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 提交

    这听起来像是一个漫长的过程,但它可以让您的历史记录完整无缺,同时让您可以利用新的目录结构,这对我来说效果很好。

    【讨论】:

      【解决方案3】:

      您也可以在将eclipse导入android studio后更改android studio项目,使android studio项目使用与eclipse项目相同的目录结构。
      方法如下:
      见链接 Can we have project without app folder in android studio with everything (java/res/etc) in root

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-09-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多