xLua icon indicating copy to clipboard operation
xLua copied to clipboard

加入黑名单后依旧报错The type name 'OnRequestRebuild' does not exist in the type 'CanvasRenderer'

Open freedom12 opened this issue 6 years ago • 5 comments

使用xlua自带的config模板,打开全lua编程的注释部分 下面的黑名单中也包含了OnRequestRebuild 截屏2020-02-22 下午1 51 15 clear后重新生成xlua的代码,可以看到依旧会生成OnRequestRebuild的delegate 截屏2020-02-22 下午1 52 43 然后使用addressable打包时候就会曝出标题的错误 截屏2020-02-22 下午1 26 51

freedom12 avatar Feb 22 '20 05:02 freedom12

https://github.com/Tencent/xLua/issues/608#issue-465102702 看到这个里面说是某个注入类里引用了editor里的东西。 但是我现在基本就是个新项目,完全没有手动打标签,只是用到了ExampleConfig的动态标签

freedom12 avatar Feb 22 '20 11:02 freedom12

黑名单是排除LuaCallCSharp类里头某些方法 DelegateGenBridge.cs是Hotfix配置或者CSharpCallLua配置的生成代码。你在这两个配置找下哪里引用了,就过滤掉即可

chexiongsheng avatar Feb 23 '20 06:02 chexiongsheng

image

试试在CSharpCallLua的List里面加isExcluded判断

lizhengde avatar Apr 10 '20 01:04 lizhengde

感觉这个应该是Unity的问题......Unity编辑器下使用的dll是有OnRequestRebuild的,打包的时候,使用的dll是另外一个dll,不包含OnRequestRebuild....

编辑器下使用的dll在Editor\Data\Managed\UnityEngine

image

打包的时候使用的dll(win64),在Editor\Data\PlaybackEngines下对应平台目录里面

image

lizhengde avatar Apr 10 '20 02:04 lizhengde

感觉这个应该是Unity的问题......Unity编辑器下使用的dll是有OnRequestRebuild的,打包的时候,使用的dll是另外一个dll,不包含OnRequestRebuild....

编辑器下使用的dll在Editor\Data\Managed\UnityEngine

image

打包的时候使用的dll(win64),在Editor\Data\PlaybackEngines下对应平台目录里面

image

对的很坑 需要自己根据错误提示修改配置 2019.4.18f1c1 版本 黑名单需要加入这些 然后 加上@lizhengde的修改方法 或者自己加过滤条件来判断

            new List<string>(){ "UnityEngine.AnimatorControllerParameter", "name"},
            new List<string>(){ "UnityEngine.AudioSettings", "GetSpatializerPluginNames"},
            new List<string>(){ "UnityEngine.AudioSettings", "SetSpatializerPluginName" , "System.String"},
            new List<string>(){ "UnityEngine.Caching", "SetNoBackupFlag","UnityEngine.CachedAssetBundle"},
            new List<string>(){ "UnityEngine.Caching", "SetNoBackupFlag", "System.String","UnityEngine.Hash128"},
            new List<string>(){ "UnityEngine.Caching", "ResetNoBackupFlag","UnityEngine.CachedAssetBundle"},
            new List<string>(){ "UnityEngine.Caching", "ResetNoBackupFlag", "System.String","UnityEngine.Hash128"},
            new List<string>(){ "UnityEngine.DrivenRectTransformTracker", "StopRecordingUndo"},
            new List<string>(){ "UnityEngine.DrivenRectTransformTracker", "StartRecordingUndo"},
            new List<string>(){ "UnityEngine.Input", "IsJoystickPreconfigured","System.String"},
            new List<string>(){ "UnityEngine.LightProbeGroup", "dering"},
            new List<string>(){ "UnityEngine.LightProbeGroup", "probePositions"},

            new List<string>(){ "UnityEngine.Light", "SetLightDirty"},
            new List<string>(){ "UnityEngine.Light", "shadowRadius"},
            new List<string>(){ "UnityEngine.Light", "shadowAngle"},

            
            new List<string>(){ "UnityEngine.MeshRenderer", "scaleInLightmap"},
            new List<string>(){ "UnityEngine.MeshRenderer", "receiveGI"},
            new List<string>(){ "UnityEngine.MeshRenderer", "stitchLightmapSeams"},


            new List<string>(){ "UnityEngine.ParticleSystemForceField", "FindAll"},

            new List<string>(){ "UnityEngine.ParticleSystemRenderer", "supportsMeshInstancing"},

            new List<string>(){ "UnityEngine.QualitySettings", "streamingMipmapsRenderersPerFrame"},

            new List<string>(){ "UnityEngine.Texture", "imageContentsHash"},


            new List<string>(){"UnityEngine.UI.DefaultControls", "factory"},

            new List<string>(){"UnityEngine.UI.Graphic", "OnRebuildRequested"},

            new List<string>(){ "UnityEngine.UI.Text", "OnRebuildRequested"},

destinyzhang avatar Feb 04 '21 08:02 destinyzhang