无法在 Android Studio 中将项目迁移到 Gradle [英] Can't migrate project to Gradle in Android Studio

查看:43
本文介绍了无法在 Android Studio 中将项目迁移到 Gradle的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have a project that I already run in Android Studio.

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

After I've opened the project in Android Studio I got the message:

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

按照有关迁移到 Gradle 的更多信息的链接虽然我已经在 Android Studio 上,但我遵循了选项 从 IntelliJ 项目迁移 .

Following the link of More Information about migrating to Gradle although I'm already on Android Studio I've followed the option Migrating from IntelliJ Projects .

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

Since I've already have a build.gradle file at the root of my project I've modified to include some dependencies.

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 Structure 中的 Libraries->libs.

As instructed, i've ran gradle assembleDebug on the Android Studio terminal windows but was getting some errors. To solve this errors I had to create a local.properties with sdk.dir=C:\\Program Files (x86)\\Android\\android-sdk and remove the android-support-v4.jar file from the /libs folder and from the Libraries->libs from the Project Structure.

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

I now ran again gradle assembleDebug and this time it finishes without any errors.

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

I've restarted Android Studio but after restarting I've saw that on the External Libraries of the project there were no support-v4 and appcompat-v7 and in one of my classes I have the import android.support.v4.widget.CursorAdapter; marked as error since Cannot resolve symbol Cursor Adapter.

如果我按下按钮 Sync project with gradle files 我收到消息:MyProject 项目不是基于 Gradle 的项目

If I press the button Sync project with gradle filesi got the message: The project MyProject is not a Gradle-based project

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

Can someone help me figuring out how to solve this?

这是我的项目结构

推荐答案

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

The project thinks it's still a non-Gradle based project; it's not the presence of the build.gradle file that makes it Gradle-based, but it's how the project was set up in the first place. You'll need to re-import your project to finish the conversion to Gradle.

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

First, though, it looks like you don't have a settings.gradle file; it looks like you need one. Since you've set up your project as a single-module project, then you can put the file in your project's root directory, next to build.gradle. It should contain this:

import ':'

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

In the future if you add more modules to your project you may want to convert it to a multi-module directory structure, but you don't need to worry about that now. In any event, now you need to do the re-import in Android Studio:

  1. 关闭您的项目
  2. 备份您的项目
  3. 删除项目根目录下的.idea文件夹
  4. 删除项目中的所有 .iml 文件
  5. 在 Android Studio 中导入您的项目,然后在提示您输入文件的对话框中,选择 build.gradle 文件.
  1. Close your project
  2. Back up your project
  3. Delete the .idea folder in the root directory of the project
  4. Delete all the .iml files in your project
  5. Import your project in Android Studio, and in the dialog that prompts you for a file, choose the build.gradle file.

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

After this you should be good to go.

这篇关于无法在 Android Studio 中将项目迁移到 Gradle的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆