Android Studio 1.4和矢量图像

3
今天我升级了 Android Studio 到 1.4 版本。在更新日志中,我看到你可以使用矢量图像编译适用于 API <21 的应用程序。我尝试过了,将 Gradle 版本从 1.3.0 更改为 1.4.1,并使用矢量图像代替光栅图像。但在构建过程中,我遇到了以下错误:
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

抱歉我的英语不好,希望你能理解。提前感谢。


请查看我的回答和被采纳的回答,链接在这里:http://stackoverflow.com/a/37202393/2094075 - user2094075
3个回答

6
步骤1:首先尝试清理和重新启动项目,看看是否能解决问题。在大多数情况下,这将解决您的问题。
步骤2:如果以上方法都不起作用,那么您需要启用MultiDex模式。
Android 5.0及更高版本的Multidex支持
Android 5.0及更高版本使用称为ART的运行时,原生支持从应用程序APK文件加载多个dex文件。 ART在应用程序安装时执行预编译,扫描类(..N).dex文件并将它们编译成一个单独的.oat文件,供Android设备执行。有关Android 5.0运行时的更多信息,请参见Introducing 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'
}

在您的清单文件中,将多 dex 支持库中的 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);
    ...
}

最后,您需要按照以下方式更新您的 build.gradle 文件,通过添加multiDexEnabled true

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

我希望这可以对您有所帮助,以下是相关的IT技术内容:


这不是一个好的答案或解决方案。仅仅因为Gradle 1.4构建为先前不需要multidex的apk提供了错误,就不能接受并启用multidex。 - mthandr

2

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

defaultConfig {
    multiDexEnabled true
}

1

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

buildToolsVersion "23.0.1"

虽然 "23.0.1" 不是最终答案,但你需要更新到最适合的版本。就这样。 - Milon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接