繁体   English   中英

无法在 Android Studio 中将项目迁移到 Gradle

[英]Can't migrate project to Gradle in Android Studio

我有一个已经在 Android Studio 中运行的项目。

在 Android Studio 中打开项目后,我收到以下消息:

将项目迁移到 Gradle? 该项目不使用 Gradle 构建系统。 我们建议您迁移到使用 Gradle 构建系统。 有关迁移到 Gradle 的更多信息 不再显示此消息。

按照有关迁移到 Gradle更多信息的链接,虽然我已经在Android Studio我已经按照从 IntelliJ 项目迁移的选项进行了操作。

因为我已经在我的项目的根目录下有一个build.gradle文件,所以我已经修改以包含一些依赖项。

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

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

    compile "com.android.support:support-v4:18.0.+"
    compile "com.android.support:appcompat-v7:18.0.+"
}

android {
    compileSdkVersion 18
    buildToolsVersion "18.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')
    }
}

按照指示,我在Android Studio终端窗口上运行了gradle assembleDebug ,但遇到了一些错误。 为了解决这个错误,我必须用sdk.dir=C:\\\\Program Files (x86)\\\\Android\\\\android-sdk创建一个local.properties并从/libs文件夹中删除android-support-v4.jar文件以及来自Project StructureLibraries->libs

我现在再次运行gradle assembleDebug ,这次它没有任何错误地完成。

我已经重新启动了Android Studio但在重新启动后我看到在项目的External Libraries中没有support-v4appcompat-v7并且在我的一个类中我有import android.support.v4.widget.CursorAdapter; 标记为错误,因为Cannot resolve symbol Cursor Adapter

如果我按下按钮Sync project with gradle files我收到消息: The project MyProject is not a Gradle-based project

有人可以帮我弄清楚如何解决这个问题吗?

这是我的项目结构

在此处输入图片说明

该项目认为它仍然是一个非基于 Gradle 的项目; 并不是build.gradle文件的存在使它基于 Gradle,而是项目最初是如何设置的。 您需要重新导入您的项目以完成到 Gradle 的转换。

不过,首先,您似乎没有settings.gradle文件; 看起来你需要一个。 由于您已将项目设置为单模块项目,因此您可以将该文件放在项目的根目录中,在build.gradle旁边。 它应该包含以下内容:

import ':'

将来,如果您向项目添加更多模块,您可能希望将其转换为多模块目录结构,但现在您无需担心。 无论如何,现在您需要在 Android Studio 中重新导入:

  1. 关闭你的项目
  2. 备份您的项目
  3. 删除项目根目录下的.idea文件夹
  4. 删除项目中的所有.iml文件
  5. 在 Android Studio 中导入您的项目,并在提示您输入文件的对话框中,选择build.gradle文件。

在此之后,您应该可以开始了。

就我而言,当我尝试打开一个现有的 gradle 项目并且 AS 无法像 gradle 项目那样识别它时,问题出在settings.gradle文件中。 settings.gradle已损坏,因为出于某种原因,缺少分号。 正确的结构是include ':app'; 其中 app 是项目模块的名称。

另外,如果你需要,你可以放置多个模块,像这样: include ':module1', ':module2', ':module3';

我希望它可以帮助某人。

就我而言:第 1 步:项目结构 > Settings.gradle(打开它并添加 -包括 ':app';

第 2 步:转到 Gradle 选项卡(通常出现在 Android Studio 的左侧或右侧)> 然后单击刷新所有 Gradle 项目

第 3 步:砰……我希望它起作用。(它对我有用)

我所做的只是尝试在Android Studio的启动窗口中使用“import Gradle,Eclipse ETC”选项导入项目,选择要导入的与gradle不兼容的项目,然后通过自动询问我是否要导入来导入一个 gradle 构建项目,瞧它这次正确导入,没有错误。

该过程非常简单,无需摆弄讨厌的设置,只需按照 IDE 自动修复操作即可。

最后这对我有用!

只需检查您是否正在导入包含 .gradle 和 .idea 文件夹的正确文件夹

  1. 点击文件
  2. 点击导入项目
  3. 单击用户,然后单击 AndroidStudioProjects
  4. 选择您的项目,然后单击确定

    注意:如果您要从 eclipse 迁移到 Android Studio,那么您可以做完全相同的事情,但选择 eclipse 项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM