安卓应用层

2018-06-27studio3.1.1打包配置文件实践

2018-06-27  本文已影响0人  honglei92

1.打包配置文件修改

applicationVariants.all { variant ->
            variant.outputs.all { output ->
                if (variant.buildType.name != "debug") {
                    outputFileName = "FUND_DEMO_V" +
                            variant.versionName + "_" +
                            releaseTime() + "_" +
                            variant.buildType.name + "_" +
                            variant.signingConfig.name +
                            ".apk"
                }
            }
        }

2遇到一个问题,可以运行run,但是release打包就报错

Caused by: java.lang.RuntimeException: com.android.build.api.transform.TransformException: Error while generating the main dex list.
        at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104)
        at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
        at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:50)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39)
        at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:124)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199)
        at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:113)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:95)
        ... 30 more
Caused by: com.android.build.api.transform.TransformException: Error while generating the main dex list.
        at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:133)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:221)
        at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:217)
        at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
        ... 42 more
Caused by: com.android.builder.multidex.D8MainDexList$MainDexListException: com.android.tools.r8.errors.CompilationError: Program type already present: org.h2.util.Bits
        at com.android.builder.multidex.D8MainDexList.generate(D8MainDexList.java:87)
        at com.android.build.gradle.internal.transforms.D8MainDexListTransform.transform(D8MainDexListTransform.kt:120)
        ... 45 more

究其原因原来是我的gradle里面

  api 'com.squareup.leakcanary:leakcanary-android:1.5.4'
  debugApi 'com.squareup.leakcanary:leakcanary-android:1.5.4'
  releaseApi 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

最后改为:

 debugApi 'com.squareup.leakcanary:leakcanary-android:1.5.4'
 releaseApi 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'

就不报错了。
遇到问题仔细看报错信息 ,再到自己的.gradle文件里仔细查找不对,看到可疑文件琢磨修改。

上一篇 下一篇

猜你喜欢

热点阅读