2015-02-24 79 views
3

我已经采取了以下步骤迁移到Android Studio,但现在我不知道什么是错的。从Eclipse导入Android Studio不工作

  1. 在Eclipse中,我导出了gradle文件。我这样做是因为在Android Studio中导入不是一个选项,因为它创建了一个项目的副本,我的项目在git下。
  2. 在Android Studio中,我做了“打开现有的Android Studio项目”并选择gradle文件。
  3. 因为我的原始项目使用Maven的Maven依赖关系,我将所有这些添加到gradle文件。

结果:build.gradle文件中的大部分内容呈灰色,告诉我它无法解析符号[name]。当我构建时,我有超过100个错误,所有这些错误都与不存在的依赖关系有关(gradle没有完成它的工作)。另外,在过去的几天里,我一直在使用gradle项目,并且该文件通常总是要求同步,并在构建项目之前构建gradle文件。在我的情况下,没有什么。这就像我的项目不知道他需要使用gradle或gradle没有正确配置。这里是我的gradle文件和一些截图,以帮助您了解我的问题。任何帮助表示赞赏。

的build.gradle:

androidstudio

没有gradle这个子文件夹中的Android查看:它看起来像在Android Studio中

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

android { 
    compileSdkVersion 15 
    buildToolsVersion "19.1.0" 

    defaultConfig { 
     applicationId "XXXXXX" 
     minSdkVersion 15 
     targetSdkVersion 15 

     testApplicationId "XXXXXXX" 
     testInstrumentationRunner "android.test.InstrumentationTestRunner" 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 

    buildTypes { 
     release { 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt' 
     } 
    } 

    packagingOptions { 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/ASL2.0' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/NOTICE' 
    } 

    sourceSets { 
     main { 
      manifest.srcFile 'AndroidManifest.xml' 
      java.srcDirs = ['src/main/java'] 
      resources.srcDirs = ['src/main/java'] 
      aidl.srcDirs = ['src/main/java'] 
      renderscript.srcDirs = ['src/main/java'] 
      res.srcDirs = ['res'] 
      assets.srcDirs = ['assets'] 
     } 
    } 
} 

dependencies { 
    compile group: 'com.google.android', name: 'android', version: '4.1.1.4' //provided 
    compile group: 'org.springframework.android', name: 'spring-android-core', version: '1.0.1.RELEASE' 
    compile group: 'commons-io', name: 'commons-io', version: '1.4' 
    compile group: 'org.springframework.android', name: 'spring-android-rest-template', version: '1.0.1.RELEASE' 
    compile group: 'org.codehaus.jackson', name: 'jackson-core-asl', version: '1.9.13' 
    compile group: 'org.codehaus.jackson', name: 'jackson-mapper-asl', version: '1.9.13' 
    compile group: 'com.google.code.gson', name: 'gson', version: '2.3' 
    compile group: 'org.java-websocket', name: 'Java-WebSocket', version: '1.3.0' 
    compile group: 'joda-time', name: 'joda-time', version: '2.3' 
    compile group: 'net.erdfelt.android', name: 'apk-parser', version: '1.0.2' 
    compile group: 'org.apache.commons', name: 'commons-compress', version: '1.9' 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
    testCompile group: 'org.mockito', name: 'mockito-core', version: '1.10.8' 
    testCompile group: 'org.powermock', name: 'powermock-module-junit4', version: '1.6.1' 
    testCompile group: 'org.powermock', name: 'powermock-api-mockito', version: '1.6.1' 
} 

截图?这是正常的吗?! enter image description here

谢谢!

编辑 我不喜欢提出的意见。我似乎更进了一步,但我得到的信息是:“Gradle项目同步失败,基本功能无法正常工作”。在下面的消息中,我有这个。我能做什么?

Error:Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'. 
Possible causes for this unexpected error include:<ul><li>You are using JDK version 'java version "1.7.0_75"'. Some versions of JDK 1.7 (e.g. 1.7.0_10) may cause class loading errors in Gradle. 
Please update to a newer version (e.g. 1.7.0_67). 
<a href="open.project.structure">Open JDK Settings</a></li><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.) 
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem. 
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes. 
+3

“在Android Studio中,我做了”打开现有的Android Studio项目“并选择”gradle文件“ - 它不是现有的Android Studio项目。选择“导入项目(Eclipse ADT,Gradle等)”(如果您使用的是Android Studio 1.1)或“导入非Android Studio项目”(如果您使用的是旧版Android Studio)。它应该检测您现有的'build.gradle'文件,并且只需设置Android Studio元数据,而不需要项目副本。 – CommonsWare 2015-02-24 13:35:02

+0

我添加一个编辑到我的问题,如果你可以帮忙! – 2015-02-24 13:54:14

+0

检查此问题http://stackoverflow.com/questions/22791150/how-do-you-import-an-eclipse-project-into-android-studio-now – 2015-02-24 14:04:17

回答

2

如果这可以帮助任何人在那里,这里是我遵循的步骤来执行迁移。

出口在Eclipse ADT项目的build.gradle文件

  • 围棋,点击文件/导出。选择 “Android”文件夹和选项“生成Gradle构建文件”。
  • 按照向导,只选择您想要导出的项目。
  • 你应该有一个新的build.gradle文件在 根你的原始项目。

转换Maven依赖。如果你正在使用Maven依赖于摇篮

,所有的依赖关系看起来像这样:

<dependency> 
    <groupId>org.springframework.android</groupId> 
    <artifactId>spring-android-core</artifactId> 
    <version>1.0.1.RELEASE</version> 
</dependency> 

你需要将其转换为这种格式:

dependencies { 
    compile group: 'com.google.android', name: 'android', version: '4.1.1.4' 
    testCompile group: 'junit', name: 'junit', version: '4.12' 
} 

正如您所看到的,如果需要编译依赖项,把关键词“编译”放在它的前面。如果是用于测试,请使用关键字“testCompile”。 暂时保存在临时文件中。

安装的Android Studio和配置它 从这个位置安装Android工作室:http://developer.android.com/sdk/index.html 虽然下载/安装,打开以前生成的build.gradle文件,修改下面的东西。更换

apply plugin: 'android' 

随着

apply plugin: 'com.android.application' 

确保您的“buildScript”代码块看起来像

buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:1.1.0' 
    } 
} 

最后,添加库和Android的代码块的外部依赖性信息。

repositories { 
    mavenCentral() 
} 
dependencies { 
    compile 'com.google.android:android:4.1.1.4' 
    ... 
} 

现在Android Studio已安装,请将其打开。选择“导入项目(Eclipse ADT,Gradle等)”并导航到build.gradle文件。 Android Studio现在应该创建运行项目所需的所有元数据和文件。如果计算机上的工具版本存在错误,请返回到Android Studio的介绍屏幕并选择“配置/ SDK管理器”。下载你的项目工作所需的一切。 在项目中,进入“文件/项目结构”。在项目选项卡中,确保gradle版本是2.2.1,android插件是1.1.0。 下一步应该是创建一个配置并在USB设备或Emulator上运行它。

你很好走!