尝试从 Eclipse 到 Android Studio 执行 Android 应用程序的异常 [英] Exception trying to execute Android App from Eclipse To Android Studio

查看:22
本文介绍了尝试从 Eclipse 到 Android Studio 执行 Android 应用程序的异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我曾尝试将一个 Eclipse Android 项目迁移到 Android Studio,我尝试了两种方法,直接从 Android Studio 打开并先在 Eclipse 中迁移到 Gradle,然后在 Android Studio 中打开它.

I have tried to migrate an Eclipse Android project to Android Studio, I have tried both ways, open directly from Android Studio and migrating to Gradle in Eclipse first and then open it in Android Studio.

然后我尝试删除 Google Play 库文件夹并将其添加到我的 Gradle 文件中,然后项目执行此操作:

Then I have tried to remove the Google Play library folder and added it in my Gradle file, and then the project do this:

  • 使项目OK
  • 清理项目好的
  • 重建项目确定
  • Gradle 同步并下载大量 DLL OK
  • 播放或调试 KO 并给我以下错误:

错误:任务执行失败':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

Error:Execution failed for task ':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java''以非零退出值 2 结束

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

错误:任务执行失败':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

Error:Execution failed for task ':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java''以非零退出值 2 结束

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

错误:任务执行失败':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

Error:Execution failed for task ':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'.

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command'/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java''以非零退出值 2 结束

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2

我从 JDK 1.6 开始,然后更新到 1.7,然后更新到 1.8,看看是否有问题.

I have started with JDK 1.6, then updated to 1.7 and then to 1.8 to see if that was the problem.

如果我不删除 Google Play Dervices 文件夹,该项目就可以正常工作.

If I don't delete the Google Play Dervices folders the project works just fine.

如果这很重要,我正在使用 MAC.

I'm using a MAC if that is important.

如果解决这个问题很重要,我有 this 我的项目中的其他问题在堆栈溢出中发布.

And if that matter to solve this problem, I'm having this other problem in my project posted in stack overflow.

这是我的项目结构:

这是所有项目的 build.grade 文件

And this are the build.grade files of all the projects

主要整经项目(guestperience 1.0.1 Moncloa De San Lazaro):

Main warper project (guestperience 1.0.1 Moncloa De San Lazaro):

// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:1.2.0'
    }
}

goSmart.guestperience.MoncloaDeSanLazaro(这是我编码的地方):

goSmart.guestperience.MoncloaDeSanLazaro (this is where I code):

apply plugin: 'com.android.application'

dependencies {
    compile fileTree(dir: 'libs', include: '*.jar')
    compile project(':librarySmartHotel')
    compile 'com.google.android.gms:play-services:7.3.0'
}

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

librarySmartHotel:

librarySmartHotel:

apply plugin: 'com.android.library'

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

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

主要:

apply plugin: 'com.android.library'

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

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

我认为缺少某些配置(可能),事实是我非常迷茫.

I'm thinking that some configuration is missing (maybe), the true is that I'm super lost.

我是一名 iOS 程序员,这是我在 Android 中的第一步,该项目已由另一个人完成,现在我应该继续,所以假设我正在与 Android Studio 进行良好的斗争,看来我要输了;-P

I'm an iOS programmer and this are my first steps in Android, the project has been done by another guy, and now I'm supposed to continue, so let's say I'm having a good fight with Android Studio and it looks that I'm loosing ;-P

感谢您的帮助.

更新:

我在日志中发现了这个:

I have found this in the log:

AGPBI: {"kind":"SIMPLE","text":"意外的顶级EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL例外:"} AGPBI:{"kind":"SIMPLE","text":"com.android.dex.DexException: 多个 dex文件定义Lcom/google/android/gms/analytics/internal/Command$1;","position":{},"original":"com.android.dex.DexException:多个dex文件定义Lcom/google/android/gms/analytics/internal/Command$1;"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tatcom.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"}AGPBI: {"kind":"SIMPLE","text":"\tatcom.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tatcom.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"}AGPBI: {"kind":"SIMPLE","text":"\tatcom.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tatcom.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"}AGPBI: {"kind":"SIMPLE","text":"\tatcom.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tatcom.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tatcom.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tatcom.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"}AGPBI: {"kind":"SIMPLE","text":"\tatcom.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tatcom.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tatcom.android.dx.command.dexer.Main.run(Main.java:246)"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tatcom.android.dx.command.dexer.Main.main(Main.java:215)"} AGPBI:{"kind":"SIMPLE","text":"\tatcom.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tatcom.android.dx.command.Main.main(Main.java:106)"}

AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/analytics/internal/Command$1;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lcom/google/android/gms/analytics/internal/Command$1;"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"}

推荐答案

问题来自Android Play Services 7.3.0.

The problem come from Android Play Services 7.3.0.

试试:

dependencies {
    compile 'com.google.android.gms:play-services:6.5.87'
}

或启用 multiDex:

or enable multiDex:

defaultConfig {
    minSdkVersion 14
    targetSdkVersion 19
    versionCode 1
    versionName versionNameVar
    multiDexEnabled true
}

(multiDex 解决方案可编译,但可能会在应用启动时崩溃)

(multiDex solution compile, but might crash at app launch)

这篇关于尝试从 Eclipse 到 Android Studio 执行 Android 应用程序的异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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