Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't migrate project to Gradle in Android Studio

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

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

Migrate Project to Gradle? This project does not use the Gradle build system. We recommend that you migrate to using the Gradle build system. More Information about migrating to Gradle Don't show this message again.

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 .

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

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.

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

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.

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?

Here is my project Structure

enter image description here

like image 351
Favolas Avatar asked Feb 06 '14 15:02

Favolas


People also ask

How do I migrate a project to Gradle build?

Import a Gradle-based IntelliJ project If you are already using Gradle with your IntelliJ project, you can open it in Android Studio using the following steps: Click File > New > Import Project. Select your IntelliJ project directory, and click OK. Your project will open in Android Studio.

Why is my gradle project Sync failed?

Bad internet connection: Since Gradle downloads all the missing versions which are required to run your project, it might fail if you don't have a valid internet connection. Issues in Gradle compiler: There might be cases where your Gradle compiler is not working properly.

How do I sync gradle with Android Studio?

Open your gradle. properties file in Android Studio. Restart Android Studio for your changes to take effect. Click Sync Project with Gradle Files to sync your project.


1 Answers

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.

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 ':' 

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. 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.

like image 97
Scott Barta Avatar answered Oct 06 '22 05:10

Scott Barta