Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android Studio中将Java模块作为依赖项包含时出现错误的Java编译器_Java_Android_Android Studio - Fatal编程技术网

在Android Studio中将Java模块作为依赖项包含时出现错误的Java编译器

在Android Studio中将Java模块作为依赖项包含时出现错误的Java编译器,java,android,android-studio,Java,Android,Android Studio,我的Android Studio项目中有一个java模块,它是Android模块的依赖项。我在构建时遇到问题,出现以下异常 Error:Execution failed for task ':myApplication:preDexDebug'. > com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Applications/Android Studio.app/sdk/bui

我的Android Studio项目中有一个java模块,它是Android模块的依赖项。我在构建时遇到问题,出现以下异常

Error:Execution failed for task ':myApplication:preDexDebug'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
    /Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --output ~/myapplication-app-android/dev/biketracks-app-android/bikeTracks/build/intermediates/pre-dexed/debug/coreUtilities-6ee7e0aafa5a6db72b2acb078f065e51c43124c2.jar ~/myapplication-app-android/dev/myapplication-app-android/libs/coreUtilities/build/libs/coreUtilities.jar
  Error Code:
    1
  Output:
    UNEXPECTED TOP-LEVEL EXCEPTION:
    com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
        at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
        at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
        at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
        at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
        at com.android.dx.command.dexer.Main.processClass(Main.java:665)
        at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
        at com.android.dx.command.dexer.Main.access$600(Main.java:78)
        at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
        at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
        at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
        at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
        at com.android.dx.command.dexer.Main.processOne(Main.java:596)
        at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
        at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
        at com.android.dx.command.dexer.Main.run(Main.java:230)
        at com.android.dx.command.dexer.Main.main(Main.java:199)
        at com.android.dx.command.Main.main(Main.java:103)
    ...while parsing com/corecoders/coreutilities/GPSUtils.class
    1 error; aborting
经过一些阅读,我发现这与Android Studio使用的Java编译器有关。但是,我看不到改变它使用哪种编译器的方法

我试图在我的Android模块中包含的Java模块是我使用Android Studio创建的,通过文件>新模块>Java模块,所以我看不到任何可以改变的选项


任何想法都很好。

因此我在这里找到了解决方案

诀窍是在Java库模块的build.gradle文件中,您需要包含以下内容

apply plugin: 'java'
sourceCompatibility = 1.6
targetCompatibility = 1.6

这将起作用。

在较新版本的Gradle/Android Studio上,情况似乎发生了变化,因此上述仅选择源代码兼容性的解决方案可能还不够。特别是对于复杂的项目,这些项目的模块混合使用了比简单的android插件更多的功能(我看到在同一项目的模块上使用了以下三个插件:“android”、“java”和“android library”)

如果仅源代码兼容性无法解决问题,则需要确保满足以下条件

1) 对于应用插件的模块:“android”选择build.gradle中的源兼容性:

android {

      //... other sections.
compileOptions {

        sourceCompatibility JavaVersion.VERSION_1_7
        targetCompatibility JavaVersion.VERSION_1_7
    }
}
2) 从文件->其他设置->默认设置中选择项目字节码版本

3) 显式选择JDK环境:文件->项目结构->SDK位置,并将其设置为JDK 7文件夹

--更新:在新的Android Studio 1.2.x中,他们将可以选择Java字节码版本的位置更改为:文件->其他设置->默认设置->构建、执行环境->编译器


sourceCompatibility=1.7
targetCompatibility=1.7
也只适用于添加
apply插件:“java”
行对我有效。我简直不敢相信。即使这样也不能解决我的错误。我有6个小时的深度,已经尝试了无数次修复这个问题…@Shadoninja你的项目是一个多模块项目吗?你能试着用一个简单的HelloWorld应用程序来发现你的开发者环境是否没有什么奇怪的地方吗?我发现了。这是一个错误,但Android给了我一些相当粗糙的错误信息,这让我走上了一条非常错误的道路。这是我的问题和答案。谢谢你的回复。