Giter Site home page Giter Site logo

manbanggroup / phantom Goto Github PK

View Code? Open in Web Editor NEW
1.4K 53.0 189.0 469 KB

Phantom — 唯一零 Hook 稳定占坑类 Android 热更新插件化方案

License: Apache License 2.0

Shell 0.06% Java 82.26% Groovy 17.68%
android android-library plugin-sdk plugin-architecture plugin-engine plugin plugin-system

phantom's People

Contributors

jianlin-shen avatar shaobin0604 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

phantom's Issues

so问题

插件里面有个so和项目中的so名字一样,能不能插件使用插件的so,项目使用项目里的so 呢

插件项目引入V7包 会报错

[C:\Users\Administrator.gradle\caches\transforms-1\files-1.1\appcompat-v7-28.0.0.aar\a72a596dc4395165407feeb32dca0018\res\color\abc_btn_colored_text_material.xml:20], original message=, tool name=Optional.of(AAPT)}

对 LifecycleActivity 支持有问题

当activity继承 LifecycleActivity 的时候 activity将无法启动
UploadDriverPermitActivity 继承了LifecycleActivity,导致 UploadDriverPermitActivity 无法启动
具体错误如下:

W/Phantom ( 6513): [ (PluginContext.java:84)# createContext -> main ] createContext error, targetClass: class com.wlqq.phantom.plugin.usercenter.verifiy.UploadDriverPermitActivity
W/Phantom ( 6513): java.lang.ClassCastException: com.wlqq.phantom.plugin.usercenter.verifiy.UploadDriverPermitActivity cannot be cast to com.wlqq.phantom.library.proxy.PluginInterceptActivity
W/Phantom ( 6513): at com.wlqq.phantom.library.proxy.PluginContext.createContext(PluginContext.java:69)
W/Phantom ( 6513): at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:115)
W/Phantom ( 6513): at android.app.Activity.performCreate(Activity.java:5990)
W/Phantom ( 6513): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
W/Phantom ( 6513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
W/Phantom ( 6513): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
W/Phantom ( 6513): at android.app.ActivityThread.access$800(ActivityThread.java:151)
W/Phantom ( 6513): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
W/Phantom ( 6513): at android.os.Handler.dispatchMessage(Handler.java:102)
W/Phantom ( 6513): at android.os.Looper.loop(Looper.java:135)
W/Phantom ( 6513): at android.app.ActivityThread.main(ActivityThread.java:5254)
W/Phantom ( 6513): at java.lang.reflect.Method.invoke(Native Method)
W/Phantom ( 6513): at java.lang.reflect.Method.invoke(Method.java:372)
W/Phantom ( 6513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
W/Phantom ( 6513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
W/Phantom ( 6513): [ (ActivityHostProxy.java:160)# onCreate -> main ] ActivityHostProxy onCreate error: com.wlqq.phantom.plugin.usercenter.verifiy.UploadDriverPermitActivity
W/Phantom ( 6513): java.lang.Exception: create mClientActivity return null
W/Phantom ( 6513): at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:117)
W/Phantom ( 6513): at android.app.Activity.performCreate(Activity.java:5990)
W/Phantom ( 6513): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
W/Phantom ( 6513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
W/Phantom ( 6513): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
W/Phantom ( 6513): at android.app.ActivityThread.access$800(ActivityThread.java:151)
W/Phantom ( 6513): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
W/Phantom ( 6513): at android.os.Handler.dispatchMessage(Handler.java:102)
W/Phantom ( 6513): at android.os.Looper.loop(Looper.java:135)
W/Phantom ( 6513): at android.app.ActivityThread.main(ActivityThread.java:5254)
W/Phantom ( 6513): at java.lang.reflect.Method.invoke(Native Method)
W/Phantom ( 6513): at java.lang.reflect.Method.invoke(Method.java:372)
W/Phantom ( 6513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
W/Phantom ( 6513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

SO 的支持情况

SO 的支持是一大块。virtualAPK 支持的就不是很理想。科大讯飞的语音识别就只能放在宿主里,希望能出个支持清单。拜谢!

plugin not found

插件里面不能用V4包的Framgnet么

cannot be cast to android.support.v4.app.Fragment 包错,我 剔除了啊 excludeLib "com.android.support:support-v4:28.0.0"
excludeLib "com.android.support:support-core-ui:28.0.0"
excludeLib "com.android.support:support-compat:28.0.0"
excludeLib "com.android.support:support-media-compat:28.0.0"
excludeLib "com.android.support:support-core-utils:28.0.0"
excludeLib "com.android.support:support-fragment:28.0.0"
excludeLib "com.android.support:support-annotations:28.0.0"
excludeLib "com.android.support:cursoradapter:28.0.0"
excludeLib "com.android.support:interpolator:28.0.0"
excludeLib "com.android.support:versionedparcelable:28.0.0"
excludeLib "com.android.support:documentfile:28.0.0"
excludeLib "com.android.support:customview:28.0.0"
excludeLib "com.android.support:slidingpanelayout:28.0.0"
excludeLib "com.android.support:swiperefreshlayout:28.0.0"
excludeLib "com.android.support:drawerlayout:28.0.0"
excludeLib "com.android.support:coordinatorlayout:28.0.0"
excludeLib "com.android.support:loader:28.0.0"
excludeLib "com.android.support:viewpager:28.0.0"
excludeLib "com.android.support:collections:28.0.0"
excludeLib "com.android.support:asynclayoutinflater:28.0.0"
excludeLib "com.android.support:print:28.0.0"
excludeLib "com.android.support:localbroadcastmanager:28.0.0"

请问插件是否不支持databinding?

请问插件是否不支持databinding呢?我这边运行demo 发现 插件的databinding直接爆空了,另外能否提供Phantom目前支持的技术栈清单,鉴于运行demo有时候缺少一些技术栈支持信息,期望使用者也能够少走弯路,十分期待!谢谢!

使用机型 VIVO X20A Android版本7.1.1

插件使用databinding 插件主界面 onCreate(Bundle savedInstanceState) savedInstanceState==null
96f8066870025b50f0747407c7adb5ba

下面为报错日志

2018-10-25 19:00:38.699 2324-2354/? V/pem: noteActivityV5 uid = 10465, cool = 1, Name = com.wlqq.phantom.library.proxy.ActivityHostProxy 2018-10-25 19:00:38.699 2324-2354/? V/SceneMonitor: noteActivitySwitch: the current uid: 10465 mSceneApp.uid: 10465 2018-10-25 19:00:38.699 2324-2626/? V/SceneMonitor: MSG_ACTIVITY_SWITCH the current app is :com.wlqq.phantom.sample = uid : 10465 2018-10-25 19:00:38.705 23530-23530/com.wlqq.phantom.sample V/Phantom: [ (PhantomCore.java:612)# waitForPluginManagerInitCompletion -> main ] waitForPluginManagerInitCompletion cost ms: 0 2018-10-25 19:00:38.705 23530-23530/com.wlqq.phantom.sample I/Phantom: [ (ActivityHostProxy.java:154)# onCreate -> main ] onCreate, originIntent.getComponent: ComponentInfo{com.wlqq.phantom.plugin.view/com.wlqq.phantom.plugin.view.MainActivity} 2018-10-25 19:00:38.711 23530-23530/com.wlqq.phantom.sample V/Phantom: [ (PhantomCore.java:612)# waitForPluginManagerInitCompletion -> main ] waitForPluginManagerInitCompletion cost ms: 0 2018-10-25 19:00:38.721 23530-23530/com.wlqq.phantom.sample I/DecorView: setWindowBackground mBackgroundPadding = Rect(0, 0 - 0, 0), mFramePadding = Rect(0, 0 - 0, 0), pkg = com.wlqq.phantom.sample 2018-10-25 19:00:38.722 23530-23530/com.wlqq.phantom.sample V/Phantom: [ (DefaultLogReporter.java:29)# reportLog -> main ] com.wlqq.phantom.plugin.view_1.0.0/MainActivity onCreate fail 2018-10-25 19:00:38.723 23530-23530/com.wlqq.phantom.sample W/Phantom: [ (ActivityHostProxy.java:222)# onCreate -> main ] ActivityHostProxy onCreate error: com.wlqq.phantom.plugin.view.MainActivity java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:196) at android.app.Activity.performCreate(Activity.java:6877) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2698) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2806) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:181) at android.app.ActivityThread.main(ActivityThread.java:6274) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:790) Caused by: java.lang.NullPointerException: Attempt to read from field 'android.widget.TextView com.wlqq.phantom.plugin.view.databinding.ActivityMainBinding.text' on a null object reference at com.wlqq.phantom.plugin.view.MainActivity.onCreate(MainActivity.java:48) at java.lang.reflect.Method.invoke(Native Method)  at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:196)  at android.app.Activity.performCreate(Activity.java:6877)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2698)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2806)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:181)  at android.app.ActivityThread.main(ActivityThread.java:6274)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:790)  2018-10-25 19:00:38.723 23530-23530/com.wlqq.phantom.sample V/Phantom: [ (DefaultLogReporter.java:24)# reportEvent -> main ] _ph_3.0.0_activity_onCreate_fail -> com.wlqq.phantom.plugin.view -> params: {SDK_INT=25, target_activity=com.wlqq.phantom.plugin.view.MainActivity, message=java.lang.reflect.InvocationTargetException, vn=1.0.0, MODEL=vivo_vivo X20A_25, package_name=com.wlqq.phantom.plugin.view} 2018-10-25 19:00:38.724 23530-23530/com.wlqq.phantom.sample W/Phantom: [ (DefaultLogReporter.java:19)# reportException -> main ] params: {SDK_INT=25, MODEL=vivo_vivo X20A_25} com.wlqq.phantom.library.proxy.ActivityOnCreateException: ActivityHostProxy onCreate error: com.wlqq.phantom.plugin.view.MainActivity at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:232) at android.app.Activity.performCreate(Activity.java:6877) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2698) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2806) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:181) at android.app.ActivityThread.main(ActivityThread.java:6274) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:790) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:196) at android.app.Activity.performCreate(Activity.java:6877)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2698)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2806)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:181)  at android.app.ActivityThread.main(ActivityThread.java:6274)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:790)  Caused by: java.lang.NullPointerException: Attempt to read from field 'android.widget.TextView com.wlqq.phantom.plugin.view.databinding.ActivityMainBinding.text' on a null object reference at com.wlqq.phantom.plugin.view.MainActivity.onCreate(MainActivity.java:48) at java.lang.reflect.Method.invoke(Native Method)  at com.wlqq.phantom.library.proxy.ActivityHostProxy.onCreate(ActivityHostProxy.java:196)  at android.app.Activity.performCreate(Activity.java:6877)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2698)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2806)  at android.app.ActivityThread.-wrap12(ActivityThread.java)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1528)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:181)  at android.app.ActivityThread.main(ActivityThread.java:6274)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:900)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:790) 

gradle4.10.1 com.android.tools.build:gradle:3.3.1报错,这个麻烦解决一下,大神

Caused by: groovy.lang.MissingMethodException: No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: []
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:71)
at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
at com.wlqq.phantom.gradle.host.PhantomHostPlugin$_apply_closure1.doCall(PhantomHostPlugin.groovy:50)

gradle4+编译不通过

我com.android.tools.build:gradle:4.1.0一直编译不通过,让我们项目降低gradle到3.1.4也不划算,能不能升级下gradle兼容版本

plugin 包一致报错

新建了一个项目,单独一个plugin 。只要加入apply plugin: 'com.wlqq.phantom.plugin' 这行,就运行不起来。

报错如下Cannot invoke method withWriter() on null object

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:transformClassesWith__ExcludeClasses__ForDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248)
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.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98)
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)
Caused by: java.lang.NullPointerException: Cannot invoke method withWriter() on null object
at org.codehaus.groovy.runtime.NullObject.invokeMethod(NullObject.java:91)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:48)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:35)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at com.wlqq.phantom.gradle.plugin.exclude.ExcludeClassesTransform.writeLibraryJarsToProguardFile(ExcludeClassesTransform.groovy:731)
at com.wlqq.phantom.gradle.plugin.exclude.ExcludeClassesTransform.writeLibraryJarsToProguardFile(ExcludeClassesTransform.groovy)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite$PogoCachedMethodSiteNoUnwrapNoCoerce.invoke(PogoMetaMethodSite.java:210)
at org.codehaus.groovy.runtime.callsite.PogoMetaMethodSite.callCurrent(PogoMetaMethodSite.java:59)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:154)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:174)
at com.wlqq.phantom.gradle.plugin.exclude.ExcludeClassesTransform.transform(ExcludeClassesTransform.groovy:115)
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)
at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
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: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:121)
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:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
... 32 more

as 3.41
gradle 4.4

sync 出现问题 (

Caused by: groovy.lang.MissingMethodException: No signature of method: com.android.build.gradle.internal.scope.VariantScopeImpl.getMergeAssetsTask() is applicable for argument types: () values: []
at com.wlqq.phantom.gradle.host.PhantomHostPlugin$_apply_closure1.doCall(PhantomHostPlugin.groovy:44)
at org.gradle.api.internal.ClosureBackedAction.execute(ClosureBackedAction.java:71)
at org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:155)
at org.gradle.util.ConfigureUtil.configure(ConfigureUtil.java:106)
at org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:167)
at org.gradle.internal.ImmutableActionSet$SingletonSet.execute(ImmutableActionSet.java:155)
at org.gradle.internal.MutableActionSet.execute(MutableActionSet.java:35)
at org.gradle.api.internal.DefaultDomainObjectCollection.doAdd(DefaultDomainObjectCollection.java:228)
at org.gradle.api.internal.DefaultDomainObjectCollection.add(DefaultDomainObjectCollection.java:222)
at com.android.build.gradle.AppExtension.addVariant(AppExtension.java:87)
at com.android.build.gradle.internal.ApiObjectFactory.create(ApiObjectFactory.java:132)
at com.android.build.gradle.BasePlugin.lambda$createAndroidTasks$6(BasePlugin.java:789)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)
at com.android.build.gradle.BasePlugin.createAndroidTasks(BasePlugin.java:775)
at com.android.build.gradle.BasePlugin.lambda$null$4(BasePlugin.java:670)
at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:81)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.