我尝试将 Eclipse Android 项目迁移到 Android Studio,我尝试了两种方法,直接从 Android Studio 打开并先迁移到 Eclipse 中的 Gradle,然后在 Android Studio 中打开它。
然后我尝试删除 Google Play 库文件夹并将其添加到我的 Gradle 文件中,然后项目执行以下操作:
- 制作项目OK
- 清洁工程OK
- 重建项目OK
- Gradle同步并下载大量DLLOK
- 播放或调试 KO 并给出以下错误:
错误:任务执行失败
':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'。
com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令
'/系统/库/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java''
以非零退出值 2 完成
OR
错误:任务执行失败
':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'。
com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令
'/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java''
以非零退出值 2 完成
OR
错误:任务执行失败
':goSmart.guestperience.MoncloaDeSanLazaro:dexDebug'。
com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:处理'命令
'/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/java''
以非零退出值 2 完成
我从 JDK 1.6 开始,然后更新到 1.7,然后更新到 1.8,看看这是否是问题所在。
如果我不删除 Google Play Services 文件夹,该项目就可以正常工作。
如果这很重要的话我会使用 MAC。
如果这对解决这个问题很重要,我有this https://stackoverflow.com/questions/30025491/android-gradle-sync-exception-with-the-smooth-progress-bar-project我的项目中的其他问题发布在堆栈溢出中。
这就是我的项目结构:
这是所有项目的 build.gradle 文件
主要整经机项目(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 (这是我编码的地方):
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')
}
}
图书馆智能酒店:
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')
}
}
main:
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')
}
}
我认为某些配置丢失了(也许),事实是我非常迷失。
我是一名 iOS 程序员,这是我在 Android 中迈出的第一步,该项目已由另一个人完成,现在我应该继续,所以假设我正在与 Android Studio 进行良好的斗争,看起来我输了;-P
谢谢您的帮助。
UPDATE:
我在日志中发现了这一点:
AGPBI:{“kind”:“简单”,“text”:“意外的顶级
例外:","位置":{},"原始":"意外的顶级
例外:"} AGPBI:
{“kind”:“SIMPLE”,“text”:“com.android.dex.DexException:多个dex
文件定义
Lcom/google/android/gms/analytics/internal/Command$1;","位置":{},"原始":"com.android.dex.DexException:
多个dex文件定义
Lcom/google/android/gms/analytics/internal/Command$1;"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","位置":{},"原始":"\tat
com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"}
AGPBI: {"kind":"SIMPLE","text":"\tat
com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","位置":{},"原始":"\tat
com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"}
AGPBI: {"kind":"SIMPLE","text":"\tat
com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","位置":{},"原始":"\tat
com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"}
AGPBI: {"kind":"SIMPLE","text":"\tat
com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","位置":{},"原始":"\tat
com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","位置":{},"原始":"\tat
com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","位置":{},"原始":"\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)","位置":{},"原始":"\tat
com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.command.dexer.Main.run(Main.java:246)","位置":{},"原始":"\tat
com.android.dx.command.dexer.Main.run(Main.java:246)"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.command.dexer.Main.main(Main.java:215)","位置":{},"原始":"\tat
com.android.dx.command.dexer.Main.main(Main.java:215)"} AGPBI:
{“种类”:“简单”,“文本”:“\ tat
com.android.dx.command.Main.main(Main.java:106)","位置":{},"原始":"\tat
com.android.dx.command.Main.main(Main.java:106)"}