【问题标题】:Android studio 1.4 and vector imageAndroid studio 1.4 和矢量图像
【发布时间】:2015-12-29 14:16:49
【问题描述】:

今天我将 android studio 更新到 1.4 版本。我在更改日志中看到,您也可以为 api

Error:Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.transform.api.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_51\bin\java.exe'' finished with non-zero exit value 2

对不起,我的英语不好。我希望你明白。提前致谢。

【问题讨论】:

  • 请仔细阅读我的答案和接受的答案,这里是link

标签: android vector android-studio


【解决方案1】:

第 1 步。首先尝试清理并重新启动您的项目,看看它是否适合您。在大多数情况下,它会解决您的问题。

第 2 步。如果这些都不适合您,则意味着您必须启用 MultiDex 模式。

对 Android 5.0 及更高版本的 Multidex 支持

Android 5.0 及更高版本使用一个名为 ART 的运行时,它本机 支持从应用 APK 文件中加载多个 dex 文件。艺术 在应用程序安装时执行预编译,扫描 classes(..N).dex 文件并将它们编译成单个 .oat 文件 由安卓设备执行。有关 Android 的更多信息 5.0 运行时,请参阅 ART 简介。

这意味着您的应用可以在 API 级别 21 或更高级别上正常运行。

Android 5.0 之前的 Multidex 支持

Android 5.0 之前的平台版本使用 Dalvik 运行时 用于执行应用程序代码。默认情况下,Dalvik 将应用程序限制为单个 每个 APK 的 classes.dex 字节码文件。为了解决这个问题 限制,你可以使用multidex支持库,它变成 应用程序的主要 DEX 文件的一部分,然后管理对 额外的 DEX 文件及其包含的代码。

所以,首先确保你已经导入了正确的依赖,看起来你可以通过以下方式做到这一点。

dependencies {
  // Change as per the latest dependency
  compile 'com.android.support:multidex:1.0.1'
}

在您的清单中,将来自 multidex 支持库的 MultiDexApplication 类添加到应用程序元素。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.android.multidex.myapplication">
    <application
        ...
        android:name="android.support.multidex.MultiDexApplication">
        ...
    </application>
</manifest>

除此之外,如果您的应用扩展了Application 类,您可以覆盖attachBaseContext() 方法并调用MultiDex.install(this) 以启用multidex

public void onCreate(Bundle arguments) {
    MultiDex.install(getTargetContext());
    super.onCreate(arguments);
    ...
}

最后,您需要通过添加multiDexEnabled true 来更新您的 build.gradle 文件,如下所示:

defaultConfig {  
        applicationId '{Project Name}'  
        minSdkVersion 15  
        targetSdkVersion 23  
        versionCode 1  
        versionName "1.0"  
        multiDexEnabled true  
    }  

希望对你有所帮助。

【讨论】:

  • 这不是一个好的答案或一个好的解决方案。仅仅因为这个 gradle 1.4 版本对以前不需要 multidex 的 apk 给出了这个错误,并不意味着他应该接受它并启用 multidex。
【解决方案2】:

尝试为您的 build.gradle 文件启用 multiDex 属性:

defaultConfig {
    multiDexEnabled true
}

【讨论】:

    【解决方案3】:

    我在使用较低版本的构建工具时遇到了同样的问题。尝试升级您的构建工具版本,例如当我使用 v23 时它适用于我。

    buildToolsVersion "23.0.1"
    

    【讨论】:

    • 虽然“23.0.1”不是最终答案,但您需要更新到最合适的版本。就是这样
    猜你喜欢
    • 2017-09-24
    • 2018-02-12
    • 1970-01-01
    • 2018-04-18
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-09-01
    • 1970-01-01
    相关资源
    最近更新 更多