Tencent / Shadow

零反射全动态Android插件框架
BSD 3-Clause "New" or "Revised" License
7.42k stars 1.3k forks source link

DexArchiveMergerException #29

Closed SheepYang1993 closed 5 years ago

SheepYang1993 commented 5 years ago

> Task :sample-plugin-app:transformDexArchiveWithDexMergerForDebug FAILED
java.lang.RuntimeException: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\0, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\3.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\4.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\5.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\6.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\7.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\8.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\9.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\10.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\11.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\12.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\13.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\14.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\15.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\16.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\17.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\18.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\19.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\20.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\21.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\22.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\23.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\24.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\25.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\26.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\27.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\28.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\29.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\30.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\31.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\32.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\33.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\34.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\36.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\37.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\39.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\40.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\42.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\43.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\45.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\46.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\49.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\50.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\52.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\53.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\58.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\59.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\61.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\62.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\65.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\66.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\68.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\69.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\71.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\72.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\74.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\75.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\77.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\78.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\80.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\81.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\84.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\85.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\87.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\88.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\90.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\91.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\93.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\94.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\96.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\97.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\99.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\102.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\103.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\105.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\106.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\108.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\109.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\111.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\112.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\114.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\115.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\117.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\118.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\120.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\121.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\123.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\124.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\126.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\127.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\129.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\130.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\132.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\133.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\135.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\136.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\138.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\139.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\141.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\142.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\144.jar, D:\SheepYang\Android\Project\SheepShadow\projects\sample\sample-plugin\sample-plugin-app\build\intermediates\transforms\dexBuilder\debug\145.jar
Learn how to resolve the issue at https://developer.android.com/studio/build/dependencies#duplicate_classes.
Program type already present: android.support.v4.content.LocalBroadcastManager$BroadcastRecord
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
    at java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:593)
    at java.util.concurrent.ForkJoinTask.reportException(ForkJoinTask.java:677)
    at java.util.concurrent.ForkJoinTask.join(ForkJoinTask.java:720)
    at com.google.common.collect.ImmutableList.forEach(ImmutableList.java:406)
    at com.android.build.gradle.internal.transforms.DexMergerTransform.transform(DexMergerTransform.java:233)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:239)
    at com.android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.java:235)
    at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:102)
    at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:230)
    at sun.reflect.GeneratedMethodAccessor299.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)
    at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:41)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:117)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:106)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:85)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:65)
    at org.gradle.api.internal.tasks.execution.ActionEventFiringTaskExecuter.execute(ActionEventFiringTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.TimeoutTaskExecuter.execute(TimeoutTaskExecuter.java:53)
    at org.gradle.api.internal.tasks.execution.SnapshotAfterExecutionTaskExecuter.execute(SnapshotAfterExecutionTaskExecuter.java:38)
    at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:59)
    at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:49)
    at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:61)
    at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:101)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:91)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:44)
    at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:35)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.run(EventFiringTaskExecuter.java:49)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:301)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:293)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:175)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:44)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:337)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:325)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:318)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:304)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:134)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker$1.execute(DefaultPlanExecutor.java:129)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:202)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:193)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:129)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:46)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)
    at java.lang.Thread.run(Thread.java:745)
shifujun commented 5 years ago

我搜了一下Sample的代码中确实引用了27.0.227.1.1两个版本的support包,所以报这个错误应该是可以理解的。

但是你是怎么复现的呢?我最好复现一下,再改正这个问题。

shifujun commented 5 years ago

你如果把 projects/sample/sample-plugin/third-party/slidingmenu/build.gradle 中的27.0.2改成27.1.1还能复现问题吗?

SheepYang1993 commented 5 years ago

你如果把 projects/sample/sample-plugin/third-party/slidingmenu/build.gradle 中的27.0.2改成27.1.1还能复现问题吗? 把slidingmenu/build.gradle中的27.0.2改成27.1.1还是会出现这个问题。

不确定是不是我加的sample问题,可能我的接入姿势不够标准= =。。

我这边是想引入一个sample测试,然后编译没问题,Run sample-host的时候就报错了。

导入的位置如下图: preview

然后在setting.gradle的includeSample()添加了配置:

include 'sample-sheep-app'
project(':sample-sheep-app').projectDir = file('projects/sample/sample-plugin/sample-sheep-app')

还有在sample-plugin-app的build.gradle中添加:

apply from: "../sample-sheep-app/build.gradle"

这个sample的依赖

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation 'com.android.support:design:28.0.0'
    implementation 'com.android.support.constraint:constraint-layout:1.1.3'
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

完成以上步骤,Run sample-sheep-app的时候就报错了

SheepYang1993 commented 5 years ago

去掉sample-plugin-app的build.gradle添加的就可以安装了:

apply from: "../sample-sheep-app/build.gradle"

但还是打不开新加的插件,我再尝试尝试吧。 ps:插件apk已安装的情况下可以打开,未安装打不开。

shifujun commented 5 years ago

如果只是sample代码,最好直接提交到你fork的库上,我就可以编译看看了。

SheepYang1993 commented 5 years ago

如果只是sample代码,最好直接提交到你fork的库上,我就可以编译看看了。

提交了,git:9e5f1973a067810a8ca590f29b9fe68f0b535696

shifujun commented 5 years ago

这回看明白你哪里搞错了。

sample-plugin-appbuild.gradle中写的apply from: "../sample-normal-app/build.gradle",它的意思是把sample-normal-app配置的内容先抄一遍。然后后面又把applicationId改了,再应用的Shadow插件。这样做才是让sample-plugin-app成为一个和sample-normal-app构建配置一样,但是多了编译成Shadow插件的模块。

你新建的sample-sheep-app只是一个相当于sample-normal-app的普通app。你可以把sample-plugin-app中Shadow相关的配置抄过去,也可以类似的再建一个sample-sheep-plugin-app模块。

你在sample-plugin-app中添加apply from: "../sample-sheep-app/build.gradle",就相当于把你的sample-sheep-app配置又一次复制到了sample-plugin-app中,那出现重复类也不奇怪了啊。

SheepYang1993 commented 5 years ago

尝试按照你说的去修改了,并添加了sheep-plugin模块。 执行了packageAllPlugin打包所有插件,然后push到/data/local/tmp,打开宿主,还是打不开sheep-plugin的MainActivity。 报了下面这个错误:

2019-07-04 13:41:05.703 13114-13151/com.tencent.shadow.sample.host E/com.tencent.shadow.dynamic.manager.PluginManagerThatUseDynamicLoader: getPlugin exception:
    java.lang.NullPointerException: Attempt to read from field 'java.io.File com.tencent.shadow.core.manager.installplugin.InstalledPlugin$Part.pluginFile' on a null object reference
        at com.tencent.shadow.dynamic.manager.PluginManagerThatUseDynamicLoader.getPlugin(PluginManagerThatUseDynamicLoader.java:274)
        at com.tencent.shadow.dynamic.manager.UuidManagerBinder.onTransact(UuidManagerBinder.java:50)
        at android.os.Binder.execTransact(Binder.java:731)
        at android.os.BinderProxy.transactNative(Native Method)
        at android.os.BinderProxy.transact(Binder.java:1127)
        at com.tencent.shadow.dynamic.manager.BinderPluginLoader.loadPlugin(BinderPluginLoader.java:46)
        at com.tencent.shadow.sample.manager.FastPluginManager.loadPlugin(FastPluginManager.java:141)
        at com.tencent.shadow.sample.manager.FastPluginManager.convertActivityIntent(FastPluginManager.java:119)
        at com.tencent.shadow.sample.manager.FastPluginManager.startPluginActivity(FastPluginManager.java:111)
        at com.tencent.shadow.sample.manager.SamplePluginManager$1.run(SamplePluginManager.java:109)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
2019-07-04 13:41:05.705 13159-13172/com.tencent.shadow.sample.host:plugin E/JavaBinder: *** Uncaught remote exception!  (Exceptions are not yet supported across processes.)
    com.tencent.shadow.dynamic.host.FailedException
        at com.tencent.shadow.dynamic.host.BinderUuidManager.checkException(BinderUuidManager.java:36)
        at com.tencent.shadow.dynamic.host.BinderUuidManager.getPlugin(BinderUuidManager.java:54)
        at com.tencent.shadow.dynamic.loader.impl.DynamicPluginLoader.loadPlugin(DynamicPluginLoader.kt:80)
        at com.tencent.shadow.dynamic.loader.impl.PluginLoaderBinder.onTransact(PluginLoaderBinder.kt:42)
        at android.os.Binder.execTransact(Binder.java:731)
2019-07-04 13:41:05.709 13114-13151/com.tencent.shadow.sample.host E/AndroidRuntime: JUNK_FATAL_EXCEP: FATAL EXCEPTION: pool-3-thread-1,Process: com.tencent.shadow.sample.host, PID: 13114
2019-07-04 13:41:05.710 13114-13151/com.tencent.shadow.sample.host E/AndroidRuntime: FATAL EXCEPTION: pool-3-thread-1
    Process: com.tencent.shadow.sample.host, PID: 13114
    java.lang.RuntimeException: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.tencent.shadow.sample.host/com.sheepyang1993.shadowhostdemo.MainActivity}; have you declared this activity in your AndroidManifest.xml?
        at com.tencent.shadow.sample.manager.SamplePluginManager$1.run(SamplePluginManager.java:111)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:764)
     Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {com.tencent.shadow.sample.host/com.sheepyang1993.shadowhostdemo.MainActivity}; have you declared this activity in your AndroidManifest.xml?
        at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2015)
        at android.app.Instrumentation.execStartActivity(Instrumentation.java:1678)
        at android.app.Activity.startActivityForResult(Activity.java:4617)
        at android.app.Activity.startActivityForResult(Activity.java:4575)
        at android.app.Activity.startActivity(Activity.java:4939)
        at android.app.Activity.startActivity(Activity.java:4904)
        at com.tencent.shadow.sample.manager.FastPluginManager.startPluginActivity(FastPluginManager.java:115)
        at com.tencent.shadow.sample.manager.SamplePluginManager$1.run(SamplePluginManager.java:109)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) 
        at java.lang.Thread.run(Thread.java:764) 
shifujun commented 5 years ago

怎么关了。。。

给你改好了。

git fetch https://github.com/shifujun/Shadow.git f294415c
git merge FETCH_HEAD

这样把我的代码改动合到你本地看看吧。

你主要是对Android构建不太熟悉。具体改动原因我都写Commit Message里了。另外也不是说插件apk模块非得拆出来一个aar模块,只是拆出来方便同时再构建一个可以正常安装的app。但是你不能不拆这个模块,同时搞一个空的apk模块。

shifujun commented 5 years ago

看你好像又改动了。就别merge了。

git fetch https://github.com/shifujun/Shadow.git f294415c
git checkout -b \#29 FETCH_HEAD

这样直接看我的分支的。

SheepYang1993 commented 5 years ago

好的,我看下,感谢~:kissing_heart:

SheepYang1993 commented 5 years ago

看你好像又改动了。就别merge了。

git fetch https://github.com/shifujun/Shadow.git f294415c
git checkout -b \#29 FETCH_HEAD

这样直接看我的分支的。

可以了,构建这一块,我再去熟悉下。感谢大牛~