- Home /
Missing Method: BuiltInUpdate() android
Missing Method BuiltInUpdate() android API 27 arm64
i everyone. I have been developing an app for android and it has been working great! We recently switched over to a new target hardware (the product we are selling comes with a tablet that is supposed to "just work" because it is aimed at a more senior audience) from china...
The hardware is running ABI arm64-8va and OpenGL ES 3.1 with 2gb of ram and 8 cores clocking at a max speed of 1300 MHz.
Kernel version: 3.18.79 CPU Architecture: aarch64 Chipset: MT6753
I was dubious of the hardware because of the bang for buck factor but on receiving our sample from the big rock candy mountain everything seemed to check out. It passed stress tests like it should and it was very fast at running relatively heavy apps (much heavier than the one we are looking to produce).
Previously we had been developing for the Pritom TronPad 7" 1gb of ram and it was quite the tank of a potato and never made a fuss about anything even when the Android Emulator Would. It was Armeabi-v 7A...
It seems that the switch to Arm64 has blown us off the tracks as far as post processing goes. We have a really nice bloom effect that coincides with lights being turned on and off in the app but it refuses to work and has coincided with the following error in the android logcat:
2021-08-01 22:03:19.839 31782-31807/com.OurCompanyHere.OurProductHere E/Unity: MissingMethodException: UnityEngine.Experimental.Rendering.BuiltinRuntimeReflectionSystem::BuiltinUpdate()
at UnityEngine.Experimental.Rendering.BuiltinRuntimeReflectionSystem.TickRealtimeProbes () [0x00001] in /Users/bokken/buildslave/unity/build/Runtime/Export/Camera/BuiltinRuntimeReflectionSystem.bindings.cs:11
at UnityEngine.Experimental.Rendering.ScriptableRuntimeReflectionSystemWrapper.Internal_ScriptableRuntimeReflectionSystemWrapper_TickRealtimeProbes (System.Boolean& result) [0x00010] in /Users/bokken/buildslave/unity/build/Runtime/Export/Camera/ScriptableRuntimeReflectionSystemWrapper.cs:13
There is a missing method in some bit of c++ dll called BuiltInUpdate() that the unity ScriptableRuntimeReflectionSystemWrapper is trying to call in vain. That class looks like this:
// Unity C# reference source
// Copyright (c) Unity Technologies. For terms of use, see
// https://unity3d.com/legal/licenses/Unity_Reference_Only_License
using UnityEngine.Bindings;
using UnityEngine.Scripting;
namespace UnityEngine.Experimental.Rendering
{
[NativeHeader("Runtime/Camera/ReflectionProbes.h")]
class BuiltinRuntimeReflectionSystem : IScriptableRuntimeReflectionSystem
{
public bool TickRealtimeProbes()
{
return BuiltinUpdate();
}
public void Dispose()
{
Dispose(true);
}
void Dispose(bool disposing)
{
}
[StaticAccessor("GetReflectionProbes()", Type = StaticAccessorType.Dot)]
static extern bool BuiltinUpdate();
[RequiredByNativeCode]
static BuiltinRuntimeReflectionSystem Internal_BuiltinRuntimeReflectionSystem_New()
{
return new BuiltinRuntimeReflectionSystem();
}
}
}
the kicker is that I don't have any reflection probes, but this must (dear god I hope) be somehow tied into the disappearance of our pretty bloom effect because they appeared at exactly the same moment.
At this point I have done the following in the hopes that it would iron out the problem:
Changed every setting known to man (except the three that will inevitably fix it when clicked in the right order with the right tongue angle).
Updated to the most recent beta and started the project over from complete scrap moving scripts and GameObjects in one at a time.
Here are my current ideas as to why this is happening:
ILL2CPP Stripping is removing the method even though it should not be removing it. I have stripping on low and I have engine code set to not be stripped, the problem persists. I have experimented with link.xml files but to no avail (these are very new to me so theres no guarantee that I'm just (*&(^$%^& them up...)
The hardware professes that it runs android 10 when it is really running android 8.1, Droid Info saw right through this but maybe it cant run OpenGL ES 3.1 and Droid Info didn't catch it. This is seeming more and more likely every day and would be very bad as we sunk a bit under $7k into a hundred pads...
There is a magic bullet check box, or more likely a combination of check boxes (of course scattered between the URP, graphics settings, quality settings, and "other" section of player settings) that will unlock the bloom effect cheat, allowing me to render enough filthy filthy bloom to make even the most cold hearted customer oohh and ahhh...
I'm a graphics person too and at this point I really could have drawn the bloom effects by hand and simply faded them in as a sprite overlay but if anyone has any direction or help I would be over the moon.
I have the bloom effects all fixed but the missing method update persists. If anyone has any idea please let me know. I’ve officially built the app up from nothing now and I’m at a loss
Answer by DrHerringbone · Aug 14, 2021 at 01:52 AM
Big update: The problem seems to be stemming from my custom c++ native library that allows unity to talk to AAudio. I made a test project with bloom and it worked fine (thought it is still dimmer than it should be on both emulators and real hardware... but not the editor...)
When I removed the script that talks to the dll, problem gone.
Why? I am guessing that AAudio and unity's builtInUdate function are clashing somehow because my dll works as it should.
Your answer
Follow this Question
Related Questions
Universal Render Pipeline grey screen on android 0 Answers
URP how to change RenderFeatures properties/settings at runtime 3 Answers
Hybrid Renderer Visual Bug (FPS Drop?) 0 Answers
Why is the Canvas not showing up on device in ARFoundation using URP? 0 Answers
NullReference : UniversalRenderPipelineCameraEditor.cs:207 2 Answers