【问题标题】:Why project doesn't compile on Android Studio 1.5.1?为什么项目无法在 Android Studio 1.5.1 上编译?
【发布时间】:2016-01-25 12:28:09
【问题描述】:

以前没有问题。我为 OS X 10.11 放了一个新的 Android Studio 1.5.1 并给出了这个错误:

Information:Gradle tasks [:app:assembleDebug]
:android_tools:preBuild UP-TO-DATE
:android_tools:preReleaseBuild UP-TO-DATE
:android_tools:compileReleaseNdk UP-TO-DATE
:android_tools:compileLint
:android_tools:copyReleaseLint UP-TO-DATE
:android_tools:checkReleaseManifest
:android_tools:preDebugAndroidTestBuild UP-TO-DATE
:android_tools:preDebugBuild UP-TO-DATE
:android_tools:preDebugUnitTestBuild UP-TO-DATE
:android_tools:preReleaseUnitTestBuild UP-TO-DATE
:android_tools:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:android_tools:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:android_tools:prepareReleaseDependencies
:android_tools:compileReleaseAidl UP-TO-DATE
:android_tools:compileReleaseRenderscript UP-TO-DATE
:android_tools:generateReleaseBuildConfig UP-TO-DATE
:android_tools:generateReleaseAssets UP-TO-DATE
:android_tools:mergeReleaseAssets UP-TO-DATE
:android_tools:generateReleaseResValues UP-TO-DATE
:android_tools:generateReleaseResources UP-TO-DATE
:android_tools:mergeReleaseResources UP-TO-DATE
:android_tools:processReleaseManifest UP-TO-DATE
:android_tools:processReleaseResources UP-TO-DATE
:android_tools:generateReleaseSources UP-TO-DATE
:android_tools:compileReleaseJavaWithJavac UP-TO-DATE
:android_tools:extractReleaseAnnotations UP-TO-DATE
:android_tools:mergeReleaseProguardFiles UP-TO-DATE
:android_tools:packageReleaseRenderscript UP-TO-DATE
:android_tools:packageReleaseResources UP-TO-DATE
:android_tools:processReleaseJavaRes UP-TO-DATE
:android_tools:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:android_tools:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:android_tools:mergeReleaseJniLibFolders UP-TO-DATE
:android_tools:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:android_tools:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:android_tools:bundleRelease UP-TO-DATE
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:download_manager:preBuild UP-TO-DATE
:download_manager:preReleaseBuild UP-TO-DATE
:download_manager:compileReleaseNdk UP-TO-DATE
:download_manager:compileLint
:download_manager:copyReleaseLint UP-TO-DATE
:download_manager:checkReleaseManifest
:download_manager:preDebugAndroidTestBuild UP-TO-DATE
:download_manager:preDebugBuild UP-TO-DATE
:download_manager:preDebugUnitTestBuild UP-TO-DATE
:download_manager:preReleaseUnitTestBuild UP-TO-DATE
:download_manager:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:download_manager:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:download_manager:prepareReleaseDependencies
:download_manager:compileReleaseAidl UP-TO-DATE
:download_manager:compileReleaseRenderscript UP-TO-DATE
:download_manager:generateReleaseBuildConfig UP-TO-DATE
:download_manager:generateReleaseAssets UP-TO-DATE
:download_manager:mergeReleaseAssets UP-TO-DATE
:download_manager:generateReleaseResValues UP-TO-DATE
:download_manager:generateReleaseResources UP-TO-DATE
:download_manager:mergeReleaseResources UP-TO-DATE
:download_manager:processReleaseManifest UP-TO-DATE
:download_manager:processReleaseResources UP-TO-DATE
:download_manager:generateReleaseSources UP-TO-DATE
:download_manager:compileReleaseJavaWithJavac UP-TO-DATE
:download_manager:extractReleaseAnnotations UP-TO-DATE
:download_manager:mergeReleaseProguardFiles UP-TO-DATE
:download_manager:packageReleaseRenderscript UP-TO-DATE
:download_manager:packageReleaseResources UP-TO-DATE
:download_manager:processReleaseJavaRes UP-TO-DATE
:download_manager:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:download_manager:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:download_manager:mergeReleaseJniLibFolders UP-TO-DATE
:download_manager:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:download_manager:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:download_manager:bundleRelease UP-TO-DATE
:media_webbrowser:preBuild UP-TO-DATE
:media_webbrowser:preReleaseBuild UP-TO-DATE
:media_webbrowser:compileReleaseNdk UP-TO-DATE
:media_webbrowser:compileLint
:media_webbrowser:copyReleaseLint UP-TO-DATE
:media_webbrowser:mergeReleaseProguardFiles UP-TO-DATE
:media_webbrowser:packageReleaseRenderscript UP-TO-DATE
:media_webbrowser:checkReleaseManifest
:media_webbrowser:prepareReleaseDependencies
:media_webbrowser:compileReleaseRenderscript UP-TO-DATE
:media_webbrowser:generateReleaseResValues UP-TO-DATE
:media_webbrowser:generateReleaseResources UP-TO-DATE
:media_webbrowser:packageReleaseResources UP-TO-DATE
:media_webbrowser:compileReleaseAidl UP-TO-DATE
:media_webbrowser:generateReleaseBuildConfig UP-TO-DATE
:media_webbrowser:generateReleaseAssets UP-TO-DATE
:media_webbrowser:mergeReleaseAssets UP-TO-DATE
:media_webbrowser:processReleaseManifest UP-TO-DATE
:media_webbrowser:processReleaseResources UP-TO-DATE
:media_webbrowser:generateReleaseSources UP-TO-DATE
:media_webbrowser:compileReleaseJavaWithJavac UP-TO-DATE
:media_webbrowser:processReleaseJavaRes UP-TO-DATE
:media_webbrowser:transformResourcesWithMergeJavaResForRelease UP-TO-DATE
:media_webbrowser:transformClassesAndResourcesWithSyncLibJarsForRelease UP-TO-DATE
:media_webbrowser:mergeReleaseJniLibFolders UP-TO-DATE
:media_webbrowser:transformNative_libsWithMergeJniLibsForRelease UP-TO-DATE
:media_webbrowser:transformNative_libsWithSyncJniLibsForRelease UP-TO-DATE
:media_webbrowser:bundleRelease UP-TO-DATE
:app:prepareAndroidavdownloaderAndroid_toolsUnspecifiedLibrary UP-TO-DATE
:app:prepareAndroidavdownloaderDownload_managerUnspecifiedLibrary UP-TO-DATE
:app:prepareAndroidavdownloaderMedia_webbrowserUnspecifiedLibrary UP-TO-DATE
:app:prepareComAndroidSupportAppcompatV72311Library UP-TO-DATE
:app:prepareComAndroidSupportSupportV42311Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesAds840Library UP-TO-DATE
:app:prepareComGoogleAndroidGmsPlayServicesBasement840Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:compileDebugJavaWithJavac UP-TO-DATE
:app:compileDebugNdk UP-TO-DATE
:app:compileDebugSources UP-TO-DATE
:app:transformClassesWithDexForDebug
Uncaught translation error: com.android.dex.util.ExceptionWithContext
1 error; aborting
Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: 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 1
Information:BUILD FAILED
Information:Total time: 36.102 secs
Information:1 error
Information:0 warnings
Information:See complete output in console

应用程序构建.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        applicationId 'com.xxx.xxx'
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 23
        versionName '2.5'
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }

    dexOptions {
        incremental = true;
        preDexLibraries = false
        javaMaxHeapSize "4g"
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile project(':download_manager')
    compile project(':media_webbrowser')
    compile project(':android_tools')
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
}

android_tools build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        minSdkVersion 9
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
}

download_manager build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:23.1.1'
}

media_webbrowser build.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 23
    buildToolsVersion '23.0.2'
    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    productFlavors {
    }
}

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

许多人都试图解决这个问题。没有什么帮助。告诉我可能出了什么问题?

=============

我发现了一个出错的地方(在 media_webbrowser 模块中)。 此时出错,传入新对象接口的方法时:http://pastebin.com/jpUBznZ5

传递 null 则没有错误:http://pastebin.com/Ewi7jz0q

============

通过安装 jdk8 而不是 jdk7 解决了问题

【问题讨论】:

  • 看来你可能超过了dex限制,尝试编译multidex库并启用multidex
  • 发布模块的 gradles:download_manager、media_webbrowser、android_tools。
  • @Sufian 更新问题(模块等级:download_manager、media_webbrowser、android_tools)
  • 不确定是不是这样。始终保持相同的 buildToolsVersion。在所有文件中将buildToolsVersion '23.0.1' 替换为buildToolsVersion '23.0.2'。如果没有成功,请尝试switching to multidex
  • @Sufian 我发现一个地方有错误(问题更新)

标签: android android-gradle-plugin


【解决方案1】:

从构建 gradle 文件中删除 compile 'com.google.android.gms:play-services:8.4.0' 并重试

因为您必须使用完整的 Google Play 服务库或 Google Play 服务的单独部分。使用其中之一。

以下是使用完整的 Google Play 服务库

compile 'com.google.android.gms:play-services:8.4.0'

因此,如果您使用 Google Play 服务的单独部分(例如 com.google.android.gms:play-services-ads:8.4.0),则无需添加。

这就是为什么您的应用 dex 大小会增加 Over 65K Methods


来自documentation

选择性地将 API 编译到您的可执行文件中

在 6.5 之前的 Google Play 服务版本中,您必须编译 整个 API 包到您的应用程序中。在某些情况下,这样做会使 在您的应用程序中保持方法的数量变得更加困难(包括 65,536 下的框架 API、库方法和您自己的代码) 限制。

从 6.5 版开始,您可以选择性地编译 Google Play 服务 API 到您的应用程序中。例如,仅包含 Google Fit 和 Android Wear API,在您的 build.gradle 文件:

使用这些行编译“com.google.android.gms:play-services:8.4.0”:

编译 'com.google.android.gms:play-services-fitness:8.4.0' 编译 'com.google.android.gms:play-services-wearable:8.4.0'

【讨论】:

  • @alex-v 尝试干净构建。我真的相信建议的解决方案应该真的有效。
  • 错误源于你在项目中使用了超过65k的方法
  • 只留下一行 compile 'com.google.android.gms:play-services:8.4.0' 并没有帮助。尝试干净构建。
  • @AndroidAndroid 如何解决?
  • @DhawalSodhaParmar 更新问题(完整的 gradle 控制台消息和修复 build.gradle)
【解决方案2】:

也许你看到了这个issue

我将在此处复制该帖子中的解决方案,以防万一将来链接断开。

如果您使用“--info --debug”编译并注意到内存不足错误,将此块添加到 gradle.build 应该可以解决它。

android {
    dexOptions {
        incremental = true;
        preDexLibraries = false
        javaMaxHeapSize "4g" // 2g should be also OK
    }
}

【讨论】:

  • 将此解决方案添加到 app build.grudle,但仍然出现编译错误:任务 ':app:transformClassesWithDexForDebug' 失败(更新问题)
  • 我发现一个地方有错误(问题更新)
  • 很高兴您修复了它,感谢您告诉我们最终的解决方案。
【解决方案3】:

通过安装 jdk8 而不是 jdk7 解决了问题

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-19
    • 2020-09-07
    • 2016-08-26
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多