Skip to content
This repository has been archived by the owner on Aug 11, 2024. It is now read-only.

Error when building for oculus (Android) IL2CPP #908

Closed
2 of 5 tasks
StephenHodgson opened this issue Dec 17, 2021 · 5 comments
Closed
2 of 5 tasks

Error when building for oculus (Android) IL2CPP #908

StephenHodgson opened this issue Dec 17, 2021 · 5 comments
Labels
Bug Something isn't working

Comments

@StephenHodgson
Copy link
Contributor

StephenHodgson commented Dec 17, 2021

XRTK - Mixed Reality Toolkit Bug Report

Describe the bug

System.Exception: Interface XRTK.Interfaces.IMixedRealityService method System.String XRTK.Interfaces.IMixedRealityService::get_Name() not implemented on non-abstract class XRTK.Services.LocomotionSystem.LocomotionSystem

Your Setup

  • Operation System:
    • Windows
    • MacOs
    • Linux
    • Other
  • Unity Version: 2020.3.17f1
  • XRTK Packages
    • com.xrtk.core 0.3.0-preview.42
@StephenHodgson StephenHodgson added the Bug Something isn't working label Dec 17, 2021
@FejZa
Copy link
Contributor

FejZa commented Dec 18, 2021

What? This does not make any sense. I've been building IL2CPP for Oculus just fine for a long time. Also that property is inherited from the BaseService class which does provide a default implementation. I'll have to check this.

@StephenHodgson
Copy link
Contributor Author

StephenHodgson commented Dec 18, 2021

Just a reminder I only have core installed in this project.
I upgraded xrtk from 0.3.0-preview.15 -> 0.3.0-preview.45 when I first noticed this error

@StephenHodgson
Copy link
Contributor Author

A bit more info:

Exception: IL2CPP error for type '<PrivateImplementationDetails>/__StaticArrayInitTypeSize=176' in assembly '\Temp\StagingArea\assets\bin\Data\Managed\System.Data.dll'
System.Exception: Interface XRTK.Interfaces.IMixedRealityService method System.String XRTK.Interfaces.IMixedRealityService::get_Name() not implemented on non-abstract class XRTK.Services.LocomotionSystem.LocomotionSystem
 (at ?)
   at Unity.IL2CPP.Metadata.VTableBuilder.ValidateInterfaceMethodSlots(TypeDefinition typeDefinition, Dictionary`2 interfaceOffsets, List`1 slots)
   at Unity.IL2CPP.Metadata.VTableBuilder.VTableForType(ReadOnlyContext context, TypeDefinition typeDefinition, Dictionary`2 interfaceOffsets, Int32 currentSlot)
   at Unity.IL2CPP.Metadata.VTableBuilder.VTableFor(ReadOnlyContext context, TypeReference typeReference)
   at Unity.IL2CPP.AssemblyConversion.PrimaryCollection.Steps.PerAssembly.AssemblyCollection.CollectGenericMethodsFromVTableSlots(GlobalPrimaryCollectionContext context, AssemblyDefinition item)
   at Unity.IL2CPP.AssemblyConversion.PrimaryCollection.Steps.PerAssembly.AssemblyCollection.ProcessItem(GlobalPrimaryCollectionContext context, AssemblyDefinition item)
   at Unity.IL2CPP.AssemblyConversion.Steps.Base.ScheduledItemsStepFunc`5.WorkerWrapper(WorkItemData`3 workerData)
   at Unity.IL2CPP.Contexts.Scheduling.PhaseWorkScheduler`1.ContinueWithResultsWorkItem`4.InvokeWorker(Object context, Int32 uniqueId)
   at Unity.IL2CPP.Contexts.Scheduling.PhaseWorkScheduler`1.BaseContinueWorkItem`2.Invoke(Object context, Int32 uniqueId)
   at Unity.IL2CPP.Contexts.Scheduling.PhaseWorkScheduler`1.WorkerLoop(Object data)

@StephenHodgson
Copy link
Contributor Author

I suspect this is because Unity is aggressively trying to strip the assemblies and the vtables are getting corrupted somehow

@SimonDarksideJ
Copy link
Contributor

Yeah, tricky to diagnose in these case to be able to develop a Link.xml to kurb Unity's aggressive cleaning

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants