【问题标题】:add library occurred build errors添加库发生构建错误
【发布时间】:2018-10-21 22:39:14
【问题描述】:

出了什么问题?

任务 ':app:transformClassesWithDexForDebug' 执行失败。> com.android.build.api.transform.TransformException:
java.lang.RuntimeException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException:
java.util.concurrent.ExecutionException: java.lang.UnsupportedOperationException

【问题讨论】:

    标签: android android-studio


    【解决方案1】:

    Android 程序被编译成 .dex(Dalvik 可执行文件)文件,然后在设备上压缩成单个 .apk 文件。有时,您需要启用 multidex 支持和更大的堆大小来编译具有大 dex 大小的类。为此,请进行以下更改,

    首先在build.gradle中添加multidex依赖,

    dependencies {
        compile 'com.android.support:multidex:1.0.1'
    }
    

    更改dexOptions,

    android {
    dexOptions {
            incremental true
            javaMaxHeapSize "4g"
        }
    }
    

    最后,添加一个扩展多索引支持的单例类,

    public class MyApplication extends MultiDexApplication {
    
        @Override
        protected void attachBaseContext(Context base) {
            super.attachBaseContext(base);
            MultiDex.install(this);
        }
    }
    

    打开清单文件并添加单例类,

    <application
            android:name=".app.MyApplication"
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            .....
       </application>
    

    【讨论】:

      【解决方案2】:

      在您的构建 gradle 中添加以下内容:

      dexOptions {
          javaMaxHeapSize "4g"
          preDexLibraries = false
      }
      

      像这样在 build.gradle 的 defaultconfig 中添加 multiDexEnabled true

      defaultConfig {
          multiDexEnabled true
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-07-18
        • 1970-01-01
        • 2021-03-16
        • 1970-01-01
        相关资源
        最近更新 更多