Code Monkey home page Code Monkey logo

android / tuningfork Goto Github PK

View Code? Open in Web Editor NEW
49.0 15.0 30.0 31.72 MB

Android Performance Tuner is a library to help developers measure frame rendering time across different devices and game stages. This plugin will help developers integrate Android Performance Tuner into their game.

Home Page: https://developer.android.com/games/sdk/performance-tuner/unity

License: Other

C# 100.00%
android-performance-tuner quality-level android unity-plugin quality fidelity-parameters performance performance-testing performance-metrics

tuningfork's Introduction

Android Performance Tuner Unity plugin

Copyright 2020 Google LLC. All rights reserved.

Android Performance Tuner is a library to help developers measure frame rendering time across different devices and game stages. This plugin will help developers integrate Android Performance Tuner into their game.

Quick Start

See the Getting Started with Unity developer guide.

API Reference

See the Android Performance Tuner for Unity API Reference.

Release Notes

The release notes are available on the releases page.

Terms & Conditions

By downloading the Android Performance Tuner Unity Plugin, you agree to Terms and Conditions.

tuningfork's People

Contributors

eristella avatar ifraud avatar ktaraymovich avatar labalov avatar lothav 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

Watchers

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

tuningfork's Issues

TuningFork:Web: java.io.FileNotFoundException:

Hello! Im trying to use Android Performance Tuner in Unity, but on sending data have this error

01-18 09:03:54.184 27895 28078 I TuningFork:Web: Response code: 403
01-18 09:03:54.184 27895 28078 I TuningFork:Web: Response message: Forbidden
01-18 09:03:54.185 27895 28078 W TuningFork:Web: java.io.FileNotFoundException: https://performanceparameters.googleapis.com/v1/applications/com.company.name/apks/30:uploadTelemetry
01-18 09:03:54.185 27895 28078 W TuningFork.GE: Error 15 when sending UPLOAD request

Also on initialition step i have this

01-18 09:03:53.836 27895 27964 I UnityTuningfork: libunity.so is found
01-18 09:03:53.836 27895 27964 I UnityTuningfork: UnitySwappy_injectTracer is found
01-18 09:03:53.836 27895 27964 I UnityTuningfork: libunity.so is found
01-18 09:03:53.836 27895 27964 I UnityTuningfork: UnitySwappy_version is found
01-18 09:03:53.836 27895 27964 I UnityTuningfork: Unity Swappy version: [65543]
01-18 09:03:53.836 27895 27964 I TuningFork: Got settings from tuningfork/tuningfork_settings.bin
01-18 09:03:53.836 27895 27964 I TuningFork: Using local file cache at /data/user/0/com.war.no/cache/tuningfork
01-18 09:03:53.838 27895 27964 I TuningForkUtils: OpenGL version 3.2
01-18 09:03:53.838 27895 27964 I TuningFork: TuningFork.GoogleEndpoint: OK
01-18 09:03:53.839 27895 27964 E TuningFork: Could not open /proc/0/status
01-18 09:03:53.839 27895 27964 I TuningFork: TuningFork Settings:
01-18 09:03:53.839 27895 27964 I TuningFork: method: 1
01-18 09:03:53.839 27895 27964 I TuningFork: interval: 30000
01-18 09:03:53.839 27895 27964 I TuningFork: n_ikeys: 4
01-18 09:03:53.839 27895 27964 I TuningFork: n_annotations: 1
01-18 09:03:53.839 27895 27964 I TuningFork: n_histograms: 4
01-18 09:03:53.839 27895 27964 I TuningFork: base_uri: https://performanceparameters.googleapis.com/v1/
01-18 09:03:53.839 27895 27964 I TuningFork: api_key: AIzaSyBAR95TgOerOeUXsR8DjlhxM0GabWWGIzQ
01-18 09:03:53.839 27895 27964 I TuningFork: fp filename: dev_tuningfork_fidelityparams_1.bin
01-18 09:03:53.839 27895 27964 I TuningFork: itimeout: 1000
01-18 09:03:53.839 27895 27964 I TuningFork: utimeout: 100000
01-18 09:03:53.839 27895 27964 I TuningFork: Settings::Histograms
01-18 09:03:53.839 27895 27964 I TuningFork: ikey: 64000 min: 6.540000 max: 60.000000 nbkts: 200
01-18 09:03:53.839 27895 27964 I TuningFork: ikey: 64001 min: 10.000000 max: 40.000000 nbkts: 30
01-18 09:03:53.839 27895 27964 I TuningFork: ikey: 64003 min: 0.000000 max: 20.000000 nbkts: 30
01-18 09:03:53.839 27895 27964 I TuningFork: ikey: 64002 min: 0.000000 max: 20.000000 nbkts: 30
01-18 09:03:53.839 27895 27964 I TFCrashHandler: CrashHandler initialized
01-18 09:03:53.839 27895 27964 I TuningFork: Got PAUSED histograms: {"name": "applications/com.war.no/apks/30", "session_context": {"device": {"brand": "motorola", "build_version": "30", "cpu_core_freqs_hz": [2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000], "device": "kyoto", "fingerprint": "motorola/kyoto_retaile/kyoto:11/RRKS31.Q3-19-97-12/f2fd37:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "motorola edge 20 lite", "product": "kyoto_retaile", "soc_manufacturer": "", "soc_model": "", "swap_total_bytes": 6015520768, "total_memory_bytes": 8020701184}, "game_sdk_info": {"session_id": "f2659c25-35b9-45da-b7f9-358a6151a3e5", "swappy_version": "1.7.0", "version": "1.5.0"}, "time_period": {"end_time": "2023-01-18T13:57:07.250035Z", "start_time": "2023-01-18T13:56:37.253468Z"}}, "telemetry": [{"context": {"annotations": "CAI=", "duration": "29.99656654s", "tuning_parameters": {"experiment_id": "", "serialized_fidelity_parameters": ""}}, "report": {"memory": {"memory_event": [{"avail_mem
01-18 09:03:53.839 27895 28078 I TuningFork:Web: Connecting to: https://performanceparameters.googleapis.com/v1/applications/com.war.no/apks/30:uploadTelemetry
01-18 09:03:53.839 27895 27964 I TuningFork: Deserializing saved session
01-18 09:03:53.839 27895 27964 I TuningFork: TuningFork initialized
01-18 09:03:53.839 27895 27964 I UnityTuningfork: Swappy backend: 2
01-18 09:03:53.844 27895 28079 E TuningFork: Could not open /proc/0/oom_score

I have INTERNET ACCESS and WIFI ACCESS in my manifest

My be you can say what could be wrong ?

Problem after cleaning project

During our build pipline, we cleaned project on builder machine using git clean -dfx, so folder Library will be deleted
We use advanced annotations and advanced fidelity parameters, but after cleaned project import, these parameters were resetted to default values.
Same result you can reach by just reimport project
SetupConfig.asset will be changed and advanced annotations and fidelityParameters will be resetted to default values

TuningFork and Memtrack Errors

Greetings, when implementing the Android Performance Tuner (1.5.2) for our Unity 2022.3.5f1 project, we noticed we were getting the following Errors in Android Logcat:

App Startup
image

With each Upload Request
image

I noticed in a closed issue that it was mentioned a fix for the first two (and possibly the third if related) was in progress, is this still the case? We are just a bit concerned about adding unknown errors to our project while attempting to resolve existing stability issues.

Multiple Issues / Questions with tuningfork.

Hey there,

I'm integrating TuningFork (Android Performance Tuner) into my Unity-based mobile game. However, I've encountered a few issues and need some guidance:

  1. The TuningFork log mentions a "large number of annotation combinations" and suggests adjusting Settings.max_num_metrics.frame_time. I'm only using 2 enums with a total of 24 entries, but I'm unsure how to modify this setting. Could you provide instructions on changing this?

  2. On the second game start, I'm getting the error log "Error ticking 64000 : 32" every frame. Any insights on what this error means and how to debug it?

  3. Regarding the recommended "Aggregation Strategy" of "Time Based" with 10 minutes, we observe session times between 2-5 minutes for our players. How does this 10-minute calculation work? Does it accumulate over multiple sessions? Does TuningFork send the collected data on application close, or is it lost? Would setting a shorter time like 2 minutes be more suitable for our usage?

Thanks for your help!

Bug Using custom Addressable Name in "Google.Android.PerformanceTuner.AddressablesScenesEnumInfo.ConvertScenePathToProtoEnumEntry()"

Hey

I find having a scene called "System_Audio" fail when I'm trying to update the Addressables Settings scenes in ATP tab

here some images:
Captura de pantalla 2024-03-01 a las 14 53 08
Captura de pantalla 2024-03-01 a las 14 53 40

Issue Happens because method assumes addresable item contains extension file in their name

instead of doing this

  // Use this function to get the protobuf Scene Enum entry corresponding to a scene.
        public static string ConvertScenePathToProtoEnumEntry(string scenePath, bool isAddressableScene)
        {
            string sceneName = scenePath
                .Replace(Path.DirectorySeparatorChar, '_')
                .Replace(Path.AltDirectorySeparatorChar, '_')
                .Replace(Path.GetExtension(scenePath), "")
                .Replace(" ", "_")
                .ToUpper();
            sceneName = k_SceneFieldRegex.Replace(sceneName, "");
            string prefix = isAddressableScene ? "ADDR_" : "";
            return  prefix + sceneName;
        }

do this

// Use this function to get the protobuf Scene Enum entry corresponding to a scene.
public static string ConvertScenePathToProtoEnumEntry(string scenePath, bool isAddressableScene)
{
    string sceneName = scenePath
        .Replace(Path.DirectorySeparatorChar, '_')
        .Replace(Path.AltDirectorySeparatorChar, '_')
        .Replace(" ", "_")
        .ToUpper();
    
    // parche, en caso de que el item posea extension se la quitamos
    if(Path.GetExtension(scenePath)?.Length > 0)
    {
        sceneName = sceneName.Replace(Path.GetExtension(scenePath), "");
    }
    else
    {
        // Fino mi pana ๐Ÿ‘
    }

    sceneName = k_SceneFieldRegex.Replace(sceneName, "");
    string prefix = isAddressableScene ? "ADDR_" : "";
    return  prefix + sceneName;
}

in this case, if addressable item does not have an extension it does not give you a zero lenght string, causing a false positive error

hope it helps :) !๐Ÿ˜Ž

Crash in tuningfork::HttpRequest::Send

Hi, we're using Andriod Performance Tuner with Unity, and saw the following crash shown in Google Play Console:

backtrace:
  #00  pc 0x0000000000083860  /apex/com.android.runtime/lib64/bionic/libc.so (abort+176)
  #01  pc 0x00000000004bb244  /apex/com.android.runtime/lib64/libart.so (art::Runtime::Abort(char const*)+2172)
  #02  pc 0x000000000000c650  /system/lib64/libbase.so (android::base::LogMessage::~LogMessage()+608)
  #03  pc 0x000000000037923c  /apex/com.android.runtime/lib64/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+1604)
  #04  pc 0x000000000038bb20  /apex/com.android.runtime/lib64/libart.so (art::JNI::GetMethodID(_JNIEnv*, _jclass*, char const*, char const*)+1432)
  #05  pc 0x0000000000053084  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so
  #06  pc 0x00000000000220c8  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so
  #07  pc 0x0000000000046f14  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so (tuningfork::HttpRequest::Send(std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> > const&, int&, std::__ndk1::basic_string<char, std::__ndk1::char_traits<char>, std::__ndk1::allocator<char> >&)+112)
  #08  pc 0x000000000005290c  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so (tuningfork::UltimateUploader::CheckUploadPending()+244)
  #09  pc 0x0000000000052804  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so (tuningfork::UltimateUploader::DoWork()+8)
  #10  pc 0x000000000003460c  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so (tuningfork::Runnable::Run()+120)
  #11  pc 0x00000000000347b8  /data/app/com.xxx.yyy-sDyHGiOxpQyp72Hx_ZVqSQ==/lib/arm64/libunitytuningfork.so
  #12  pc 0x00000000000e55b4  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+36)
  #13  pc 0x0000000000085458  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

Other information:

  • Unity: 2020.3.30 with Addressables
  • Android Performance Tuner: 1.5.2

Let us use Scriptable Objects for enum configuration + Addressable Scenes Support

Currently "Android Performance Tuner for Unity" auto-generate enums and save them in the Tuning Fork class.

This is especially problematic for scene list generation.
We use addressables/bundles to download scenes from the Internet, which by default are NOT listed on the build settings scenes and thus, not included in the auto-generated enum and not discoverable by the default annotations mechanism.

We had to create a mechanism to include and disable Addressable scenes in our BuildSettings, so that it is included on the code generated enum. Besides that, we also parsed the scene path from the "OnSceneLoaded" event to an enum value.

I believe these kind of mechanisms are nice inclusions to the built-in plugin code.

Also: the plugin would be better integrated with Unity if we could create enums by using Scriptable Objects, which then could be auto-detected by the plugin codegen process OR passed as a parameter in some way.

Terminal popups during Unity compile

Whenever Unity compiles (such as re-importing scripts) I see two windows pop up and quickly disappear. This is being caused by the processes spun up via ProtocCompiler.CreateDescriptor and ProtocCompiler.CompileProto methods. It could also have something to do with my system using the new Windows Terminal app as the default. It's not breaking anything but I do find it distracting. Could CreateNoWindow=true be added to the ProcessStartInfo settings to prevent these windows?

Somewhat related, the log messages Android Performance Tuner SceneListChanged and Android Performance Tuner RefreshAssetsCompleted are a bit excessive. Could they be disabled?

Edit: Another alternative would be detecting if these ProtocCompiler calls even need to be made. If nothing related to PerformanceTuning has changed then it's likely the calls can be skipped

I can't see the LoadingTime record in the dashboard

Hi

I used android performance tuner 1.5.2 version

create custom Annotation and record LoadingGroup and LoadingTime

like this

            // StartLoadingGroup
            LoadingTimeMetadata groupMetadata = new LoadingTimeMetadata() {
                state = LoadingTimeMetadata.LoadingState.FirstRun,
                source = LoadingTimeMetadata.LoadingSource.UnknownSource,
            };
            var groupResult = Tuner?.StartLoadingGroup(groupMetadata, null);


            // StartRecordingLoadingTime
            LoadingTimeMetadata metadata = new LoadingTimeMetadata() {
                state = LoadingTimeMetadata.LoadingState.FirstRun,
                source = LoadingTimeMetadata.LoadingSource.UnknownSource,
            };
            Annotation annotation = new Annotation() {
                PlatformInit = PhaseNameToEnum(phaseName)
            };
            var result = Tuner?.StartRecordingLoadingTime(metadata, annotation);


            // StopRecordingLoadingTime
            var stopErrorCode = Tuner?.StopRecordingLoadingTime(result.value);


            // StopLoadingGroup
            var stopErrorCode = Tuner.StopLoadingGroup(groupResult.value);

and since the release product, I can see the frame, but not the LoadingTime record in the dashboard

my guess is that tuningfork.proto is missing from the Unity Package, and that in order to make ProjectData.hasLoadingState true,

we need to modify the LoadingAnnotationIndex in tuningfork.proto and compile via protoc

tuningfork.proto's LoadingAnnotationIndex to make ProjectData.hasLoadingState true.

but for now, ProjectData.hasLoadingState is false.

Am I missing something?

"Could not open proc/0/" error logs show up when trying to initialize APT on Android device and data not being sent

Hi all - I have an issue when trying to run the APT on device. As the title says, the APT seems to initialize OK and can connect with the Google services, but I get error codes relating to something called "proc". I thought it may be to do with the "protoc" executables included in the package (which don't run on Mac because of security but can be white-listed) but I've allowed them to run and still it happens.

Here is a screenshot of my logcat when starting the game;

Screenshot 2022-03-09 at 15 03 06

I have seen a similar issue on here and have tried all suggested fixes but with no luck. Please can someone help? On my Google Cloud Platform dashboard, I see some requests for the 'Android Performance Parameters API', but the 'error' percentage is 100%.

I am using Android Performance Tuner v1.5.0 (2022-02-10) and I'm on Unity 2019.4.32 LTS.

Edit: after initialization, every submission interval, I am getting this log (first line is the red error);

2022-03-09 16:11:49.243 9598-11565/com.--- E/memtrack: Couldn't load memtrack module

2022-03-09 16:11:49.243 9598-11565/com.--- W/android.os.Debug: failed to get memory consumption info: -1

2022-03-09 16:11:49.835 9598-11563/com.--- I/TuningFork:Web: Connecting to: https://performanceparameters.googleapis.com/v1/applications/com.---/apks/65:uploadTelemetry

2022-03-09 16:11:49.838 9598-11563/com.--- I/System.out: (HTTPLog)-Static: isSBSettingEnabled false

2022-03-09 16:11:49.839 9598-11563/com.--- I/System.out: (HTTPLog)-Static: isSBSettingEnabled false

2022-03-09 16:11:50.035 9598-11563/com.--- I/TuningFork:Web: Response code: 403

2022-03-09 16:11:50.035 9598-11563/com.--- I/TuningFork:Web: Response message: Forbidden

2022-03-09 16:11:50.035 9598-11563/com.--- W/TuningFork:Web: java.io.FileNotFoundException: https://performanceparameters.googleapis.com/v1/applications/com.---/apks/65:uploadTelemetry

2022-03-09 16:11:50.035 9598-11563/com.--- W/TuningFork.GE: Error 15 when sending UPLOAD request
    {"name": "applications/com.---/apks/65", "session_context": {"device": {"brand": "samsung", "build_version": "29", "cpu_core_freqs_hz": [2002000000, 2002000000, 2002000000, 2002000000, 2504000000, 2504000000, 2730000000, 2730000000], "device": "x1s", "fingerprint": "samsung/x1sxeea/x1s:10/QP1A.190711.020/G981BXXS4BTHH:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "SM-G981B", "product": "x1sxeea", "soc_manufacturer": "", "soc_model": "", "swap_total_bytes": 2684350464, "total_memory_bytes": 11412451328}, "game_sdk_info": {"session_id": "ec29a2c6-1465-4ddd-8f71-3ecf5e12f146", 
 "swappy_version": "1.3.0", "version": "1.5.0"}, "time_period": {"end_time": "2022-03-09T16:11:49.269268Z", "start_time": "2022-03-09T16:11:19.323218Z"}}, "telemetry": [{"context": {"annotations": "CAE=", "duration": "29.946050632s", "tuning_parameters": {"experiment_id": "", "serialized_fidelity_parameters": ""}}, "report": {"battery": {"battery_event": [{"app_o

Thanks.

Unity debug log spam

Found in version 1.5.0:

Line 62 of CProtobufSerialization.cs
Debug.LogFormat("DeallocCallbackImpl.size: {0}", parameters.size);

Please comment out this unnecessary log or add a debug verbosity setting.

Crash when testing on Google Play Console Pre-Launch Report

This should also happen on local Android Emulator as well as the Firebase Test Lab.

This crash happens on application start with Google Play's virtual (emulated devices). This particular stacktrace is on a Google Pixel 2 (1080x1920, Android 13, SDK 33, arm64-v8a, fr_FR). Google Play routinely tests submitted applications on virtual devices.

** Native crash **
backtrace:
  #00  pc 0x000000000003c004  /lib/arm64/libunitytuningfork.so (tuningfork::FrameTimeMetricData* tuningfork::Session::GetData<tuningfork::FrameTimeMetricData>(tuningfork::MetricId)+116) (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
  #01  pc 0x000000000003bf4c  /lib/arm64/libunitytuningfork.so (tuningfork::TuningForkImpl::FrameDeltaTimeNanos(unsigned short, std::__ndk1::chrono::duration<long long, std::__ndk1::ratio<1l, 1000000000l> >)+136) (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
  #02  pc 0x000000000003f8d8  /lib/arm64/libunitytuningfork.so (tuningfork::SwappyTraceWrapper::PostWaitCallback(void*, long, long)+84) (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
  #03  pc 0x0000000000911420  /lib/arm64/libunity.so (std::__ndk1::function<void (long, long)>::operator()(long, long) const) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #04  pc 0x000000000090ebec  /lib/arm64/libunity.so (swappy::SwappyCommon::waitForNextFrame(swappy::SwappyCommon::SwapHandlers const&)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #05  pc 0x000000000090f23c  /lib/arm64/libunity.so (swappy::SwappyCommon::onPreSwap(swappy::SwappyCommon::SwapHandlers const&)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #06  pc 0x000000000099c494  /lib/arm64/libunity.so (swappy::SwappyGL::swapInternal(void*, void*)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #07  pc 0x000000000099c3d4  /lib/arm64/libunity.so (swappy::SwappyGL::swap(void*, void*)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #08  pc 0x00000000003a94b8  /lib/arm64/libunity.so (WindowContextEGL::Present()) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #09  pc 0x00000000003a9454  /lib/arm64/libunity.so (ContextGLES::Present()) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #10  pc 0x0000000000660810  /lib/arm64/libunity.so (GfxDeviceGLES::PresentFrame()) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #11  pc 0x00000000007a9a24  /lib/arm64/libunity.so (GfxDeviceWorker::RunCommand(ThreadedStreamBuffer&)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #12  pc 0x00000000007aa600  /lib/arm64/libunity.so (GfxDeviceWorker::RunExt(ThreadedStreamBuffer&)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #13  pc 0x00000000007a1988  /lib/arm64/libunity.so (GfxDeviceWorker::RunGfxDeviceWorker(void*)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #14  pc 0x00000000002a1258  /lib/arm64/libunity.so (Thread::RunThreadWrapper(void*)) (BuildId: 265f7d22eb5549a35a45a39f2de531b50b1cd78b)
  #15  pc 0x00000000000b63b0  /apex/com.android.runtime/lib64/bionic/libc.so (__pthread_start(void*)+208)
  #16  pc 0x00000000000530b8  /apex/com.android.runtime/lib64/bionic/libc.so (__start_thread+64)

Unity v2021.3.31f1
APT v1.5.2

Problems making the upload request - Error 35 when sending UPLOAD request - "Android Performance Tuner Unity v1.5.0 (2022-02-10)

Hello,

I am trying to integrate Android Performace Tuner into my game using unity 3d engine.

I have followed all the steps of the codelab, but I cannot send the reports.

I have make sure before:

  • Use a version higher than unity 2019.3.14.
  • Use a higher version .NET version 4.X.
  • Enable frame pacing.
  • Use the most recent version of Android Performance Tuner specifically: "Android Performance Tuner Unity v1.5.0 (2022-02-10)".
  • Internet Access Requires.
  • I have created an API KEY in our Cloud Google project for this service and i have done it as commented in the guides.

Errors:

2022-02-11 10:26:25.954 16358-16451/? I/TuningFork: Got settings from tuningfork/tuningfork_settings.bin
2022-02-11 10:26:25.954 16358-16451/? I/TuningFork: Using local file cache at /data/user/0/MyAppPackageName/cache/tuningfork
2022-02-11 10:26:25.956 16358-16451/? I/TuningForkUtils: OpenGL version 3.2
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: TuningFork.GoogleEndpoint: OK
2022-02-11 10:26:25.962 16358-16451/? E/TuningFork: Could not open /proc/0/status
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: TuningFork Settings:
method: 1
interval: 30000
n_ikeys: 4
n_annotations: 1
n_histograms: 4
base_uri: https://performanceparameters.googleapis.com/v1/
api_key: hide
fp filename: dev_tuningfork_fidelityparams_1.bin
itimeout: 1000
utimeout: 100000
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: Settings::Histograms
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: ikey: 64000 min: 6.540000 max: 60.000000 nbkts: 200
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: ikey: 64001 min: 10.000000 max: 40.000000 nbkts: 30
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: ikey: 64003 min: 0.000000 max: 20.000000 nbkts: 30
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: ikey: 64002 min: 0.000000 max: 20.000000 nbkts: 30
2022-02-11 10:26:25.962 16358-16451/? I/TuningFork: Got PAUSED histograms: {"name": "applications/MyAppPackageName/apks/20300", "session_context": {"device": {"brand": "OPPO", "build_version": "30", "cpu_core_freqs_hz": [2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2200000000, 2200000000], "device": "OP4B65L1", "fingerprint": "OPPO/CPH1951EEA/OP4B65L1:11/RP1A.200720.011/1638281965681:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "CPH1951", "product": "CPH1951EEA", "soc_manufacturer": "", "soc_model": "", "swap_total_bytes": 4294963200, "total_memory_bytes": 7978815488}, "game_sdk_info": {"session_id": "b1b659f2-517f-4164-8fe4-eca87d8ad506", "swappy_version": "1.3.0", "version": "1.5.0"}, "time_period": {"end_time": "2022-02-11T09:23:28.034969Z", "start_time": "2022-02-11T09:20:28.043513Z"}}, "telemetry": [{"context": {"annotations": "CAM=", "duration": "179.991456318s", "tuning_parameters": {"experiment_id": "", "serialized_fidelity_parameters": ""}}, "report": {"battery": {"battery_event": [{"app_on_foreg
2022-02-11 10:26:25.963 16358-16451/? I/TuningFork: Deserializing saved session
2022-02-11 10:26:25.963 16358-16451/? I/TuningFork: TuningFork initialized
2022-02-11 10:26:25.976 16358-16648/? E/TuningFork: Could not open /proc/0/oom_score
2022-02-11 10:26:55.980 16358-16647/? W/TuningFork.GE: Error 35 when sending UPLOAD request
{"name": "applications/MyAppPackageName/apks/20300", "session_context": {"crash_reports": [{"crash_reason": 0, "session_id": "b1b659f2-517f-4164-8fe4-eca87d8ad506"}], "device": {"brand": "OPPO", "build_version": "30", "cpu_core_freqs_hz": [2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2000000000, 2200000000, 2200000000], "device": "OP4B65L1", "fingerprint": "OPPO/CPH1951EEA/OP4B65L1:11/RP1A.200720.011/1638281965681:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "CPH1951", "product": "CPH1951EEA", "soc_manufacturer": "", "soc_model": "", "swap_total_bytes": 4294963200, "total_memory_bytes": 7978815488}, "game_sdk_info": {"session_id": "8472e944-ff9d-467f-a091-0786d57df4a5", "swappy_version": "1.3.0", "version": "1.5.0"}, "time_period": {"end_time": "2022-02-11T09:26:55.953760Z", "start_time": "2022-02-11T09:26:26.339386Z"}}, "telemetry": [{"context": {"annotations": "", "duration": "5.875865847s", "tuning_parameters": {"experiment_id

The errors i mainly see are:

2022-02-11 10:26:25.962 16358-16451/? E/TuningFork: Could not open /proc/0/status
2022-02-11 10:26:25.976 16358-16648/? E/TuningFork: Could not open /proc/0/oom_score
2022-02-11 10:26:55.980 16358-16647/? W/TuningFork.GE: Error 35 when sending UPLOAD request

What could be wrong?

Regards

OnPostprocessAllAssets does not work on Windows

All Unity paths are with Unix separator / while Path.Combine() under Windows uses \
So comparing if (str.Equals(Paths.configPath)) won't work.
This breaks the main Setup window.

Fixed with:

        static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets,
            string[] movedFromAssetPaths)
        {
            // handle windows paths.
            var configPath = Path.DirectorySeparatorChar == '/'
                ? Paths.configPath
                : Paths.configPath.Replace(Path.DirectorySeparatorChar, '/');
            
            foreach (string str in importedAssets)
            {
                // We are interested in knowing when the SetupConfig has been re-imported so that it can correctly be
                // loaded and used by the Init function.
                if (str.Equals(configPath))
                {
                    Init();
                    break;
                }
            }
        }

APT crashes on 32bit only device

Unity Version: 2019.4.30f1
APT Version: 1.5.0
Device: Samsung SM-J730GM/DS aka. J7Pro
System Version: Android 9

Crash Log:

2022/04/07 10:53:24.493 22761 22950 Info UnityTuningfork libunity.so is found
2022/04/07 10:53:24.493 22761 22950 Info UnityTuningfork UnitySwappy_injectTracer is found
2022/04/07 10:53:24.493 22761 22950 Info UnityTuningfork libunity.so is found
2022/04/07 10:53:24.493 22761 22950 Info UnityTuningfork UnitySwappy_version is found
2022/04/07 10:53:24.493 22761 22950 Info UnityTuningfork Unity Swappy version: [65539]
2022/04/07 10:53:24.495 22761 22950 Info TuningFork Got settings from tuningfork/tuningfork_settings.bin
2022/04/07 10:53:24.495 22761 22950 Info TuningFork Using local file cache at /data/user/0/com.sensored.bundleid/cache/tuningfork
2022/04/07 10:53:24.495 22761 22950 Info TuningFork You have a large number of annotation combinations. Check that 64 is enough for a typical session. If not, set Settings.max_num_metrics.frame_time.
2022/04/07 10:53:24.501 22761 22950 Info TuningForkUtils OpenGL version 3.2 
2022/04/07 10:53:24.503 22761 22950 Info TuningFork TuningFork.GoogleEndpoint: OK
2022/04/07 10:53:24.504 22761 22950 Error TuningFork Could not open /proc/0/status
2022/04/07 10:53:24.504 22761 22950 Info TuningFork TuningFork Settings:
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   method: 1
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   interval: 600000
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   n_ikeys: 4
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   n_annotations: 2
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   n_histograms: 4
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   base_uri: https://performanceparameters.googleapis.com/v1/
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   api_key: AIzaSyBXT8YWHPSL4UL5e99fpL0wFOY1bLoHwzw
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   fp filename: dev_tuningfork_fidelityparams_1.bin
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   itimeout: 1000
2022/04/07 10:53:24.504 22761 22950 Info TuningFork   utimeout: 100000
2022/04/07 10:53:24.504 22761 22950 Info TuningFork Settings::Histograms
2022/04/07 10:53:24.504 22761 22950 Info TuningFork ikey: 64000 min: 6.540000 max: 60.000000 nbkts: 200
2022/04/07 10:53:24.504 22761 22950 Info TuningFork ikey: 64001 min: 10.000000 max: 40.000000 nbkts: 30
2022/04/07 10:53:24.504 22761 22950 Info TuningFork ikey: 64003 min: 0.000000 max: 20.000000 nbkts: 30
2022/04/07 10:53:24.504 22761 22950 Info TuningFork ikey: 64002 min: 0.000000 max: 20.000000 nbkts: 30
2022/04/07 10:53:24.518 22761 22950 Info TFCrashHandler CrashHandler initialized
2022/04/07 10:53:24.519 22761 22950 Info TuningFork No PAUSED histograms
2022/04/07 10:53:24.519 22761 22950 Info TuningFork TuningFork initialized
2022/04/07 10:53:24.519 22761 22950 Info UnityTuningfork Swappy backend: 1
0001/01/01 00:00:00.000 -1 -1 Info  --------- beginning of crash
2022/04/07 10:53:24.523 22761 22950 Fatal libc stack corruption detected (-fstack-protector)
2022/04/07 10:53:24.524 22761 22950 Info TFCrashHandler HandlerSignal: sig 6, name SIGABRT, pid 22761
2022/04/07 10:53:24.524 22761 22950 Info TuningFork Crash flush result : 21
2022/04/07 10:53:24.528 22761 23194 Error TuningFork Could not open /proc/0/oom_score
2022/04/07 10:53:24.531 22761 23194 Debug vndksupport Loading /vendor/lib/hw/[email protected] from current namespace instead of sphal namespace.
2022/04/07 10:53:24.601 22761 23194 Debug vndksupport Loading /vendor/lib/hw/memtrack.universal7870.so from current namespace instead of sphal namespace.
2022/04/07 10:53:24.703 22761 22950 Error CRASH *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
2022/04/07 10:53:24.703 22761 22950 Error CRASH Version '2019.4.35f1 (0462406dff2e)', Build type 'Development', Scripting Backend 'il2cpp', CPU 'armeabi-v7a'
2022/04/07 10:53:24.703 22761 22950 Error CRASH Build fingerprint: 'samsung/j7y17ltextc/j7y17lte:9/PPR1.180610.011/J730GMDXSACTD1:user/release-keys'
2022/04/07 10:53:24.703 22761 22950 Error CRASH Revision: '7'
2022/04/07 10:53:24.703 22761 22950 Error CRASH ABI: 'arm'
2022/04/07 10:53:24.703 22761 22950 Error CRASH Timestamp: 2022-04-07 10:53:24+0800
2022/04/07 10:53:24.703 22761 22950 Error CRASH pid: 22761, tid: 22950, name: UnityMain  >>> com.sensored.bundleid <<<
2022/04/07 10:53:24.703 22761 22950 Error CRASH uid: 11304
2022/04/07 10:53:24.703 22761 22950 Error CRASH signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
2022/04/07 10:53:24.703 22761 22950 Error CRASH     r0  00000000  r1  000059a6  r2  00000006  r3  00000008
2022/04/07 10:53:24.703 22761 22950 Error CRASH     r4  000058e9  r5  000059a6  r6  b1cbd344  r7  0000010c
2022/04/07 10:53:24.703 22761 22950 Error CRASH     r8  b1cbd398  r9  b1cbd44c  r10 00000000  r11 b1cbd3f8
2022/04/07 10:53:24.703 22761 22950 Error CRASH     ip  00000041  sp  b1cbd330  lr  ea7e80c5  pc  ea7def76
2022/04/07 10:53:24.703 22761 22950 Error CRASH 
2022/04/07 10:53:24.703 22761 22950 Error CRASH backtrace:
2022/04/07 10:53:24.703 22761 22950 Error CRASH       #00 pc 0001cf76  /system/lib/libc.so (abort+58) (BuildId: b8e161b0c9bb5f6dee679e76f06f6262)
2022/04/07 10:53:24.703 22761 22950 Error CRASH       #01 pc 0005550b  /system/lib/libc.so (__stack_chk_fail+10) (BuildId: b8e161b0c9bb5f6dee679e76f06f6262)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #02 pc 039a629c  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #03 pc 03c40228  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #04 pc 03c42ee4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #05 pc 03b4a5dc  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #06 pc 0062f6ec  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.704 22761 22950 Error CRASH       #07 pc 009a70e4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #08 pc 009acf68  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #09 pc 009accb4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #10 pc 00964fe0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #11 pc 02244f00  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #12 pc 0223ef10  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #13 pc 03cf4c6c  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #14 pc 03cf4ac0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #15 pc 009a70e4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #16 pc 009acf68  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.705 22761 22950 Error CRASH       #17 pc 009accb4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #18 pc 00964fe0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #19 pc 02244f00  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #20 pc 0223ef10  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #21 pc 03bb20f8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #22 pc 00ceba54  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #23 pc 00cf6eb4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #24 pc 00cf6eb4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #25 pc 00d03164  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #26 pc 01595f48  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.706 22761 22950 Error CRASH       #27 pc 03bd0200  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #28 pc 0223ef10  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #29 pc 016f6ef4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #30 pc 0188f93c  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #31 pc 016f4d10  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #32 pc 0392a120  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #33 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #34 pc 02414e84  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #35 pc 02414cd8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.707 22761 22950 Error CRASH       #36 pc 0135c8d0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #37 pc 01c363c0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #38 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #39 pc 01d15218  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #40 pc 01d177ec  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #41 pc 01d1dc40  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #42 pc 02edea0c  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.708 22761 22950 Error CRASH       #43 pc 02534fac  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #44 pc 03b681cc  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #45 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #46 pc 02414e84  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #47 pc 02414cd8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #48 pc 0135c8d0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #49 pc 01c363c0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #50 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #51 pc 01d15218  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #52 pc 01d177ec  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #53 pc 01d1dc40  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.709 22761 22950 Error CRASH       #54 pc 02edb928  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #55 pc 025344c4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #56 pc 0386a5a4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #57 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #58 pc 02414e84  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #59 pc 02414cd8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #60 pc 0135c8d0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #61 pc 01c363c0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #62 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #63 pc 01d15218  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #64 pc 01d177ec  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.710 22761 22950 Error CRASH       #65 pc 01d1dc40  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #66 pc 02edb928  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #67 pc 025344c4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #68 pc 03cfc004  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #69 pc 02412b90  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #70 pc 02414e84  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #71 pc 02414cd8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #72 pc 0135c8d0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #73 pc 01c363c0  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #74 pc 03add3b8  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.711 22761 22950 Error CRASH       #75 pc 03adbf1c  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.712 22761 22950 Error CRASH       #76 pc 0062feec  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.712 22761 22950 Error CRASH       #77 pc 009a70e4  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libil2cpp.so (BuildId: fb8a3e66c1d312a54160205db5c9de9b24dc1553)
2022/04/07 10:53:24.743 22761 22950 Error CRASH       #78 pc 0052c655  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (scripting_method_invoke(ScriptingMethodPtr, ScriptingObjectPtr, ScriptingArguments&, ScriptingExceptionPtr*, bool)+92) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.746 22761 22950 Error CRASH       #79 pc 00538b91  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (ScriptingInvocation::Invoke(ScriptingExceptionPtr*, bool)+92) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.749 22761 22950 Error CRASH       #80 pc 0053fe0f  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (MonoBehaviour::CallUpdateMethod(int)+180) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #81 pc 002cb651  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (void BaseBehaviourManager::CommonUpdate<LateBehaviourManager>()+116) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #82 pc 002cb5c9  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (LateBehaviourManager::Update()+16) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #83 pc 003c2c01  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (InitPlayerLoopCallbacks()::PreLateUpdateScriptRunBehaviourLateUpdateRegistrator::Forward()+44) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #84 pc 003bbc3d  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (ExecutePlayerLoop(NativePlayerLoopSystem*)+52) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #85 pc 003bbc71  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (ExecutePlayerLoop(NativePlayerLoopSystem*)+104) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.750 22761 22950 Error CRASH       #86 pc 003bbe3d  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (PlayerLoop()+284) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.754 22761 22950 Error CRASH       #87 pc 0059b2e5  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (UnityPlayerLoop()+500) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.758 22761 22950 Error CRASH       #88 pc 005c26d9  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/lib/arm/libunity.so (nativeRender(_JNIEnv*, _jobject*)+40) (BuildId: 568c9dc6eab7b270dccb4fa903fc0ec80a9e20f5)
2022/04/07 10:53:24.759 22761 22950 Error CRASH       #89 pc 0008d783  /data/app/com.sensored.bundleid-j7Vw6SE-Y1FCwhQaTzmqvQ==/oat/arm/base.odex
2022/04/07 10:53:25.706 22761 22950 Error CRASH Tombstone written to: /storage/emulated/0/Android/data/com.sensored.bundleid/files/tombstone_01

Unexpectedly large frame times in the stats

I've added the APT to my game, and the stats that I see in the Play Console are very confusing, as I don't see any FPS drops during testing on a wide range of devices.
image

I think that might be because I use OnDemandRendering in my game to halt the rendering during times of player inactivity completely. Do you think this might be the case for such a strange statistic in the Console?

Reference:
https://blog.unity.com/technology/how-on-demand-rendering-can-improve-mobile-performance

Crash with using Performance Tuner

We are using APT version 1.5.0.60b0ddc9 Unity 2021.3.26f1 and see a lot of crashes coming from the plugin

null pointer dereference: SIGSEGV 0x0000000000000018
#00 pc 0x2d350 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#1 pc 0x2d348 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#2 pc 0x27ae0 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#3 pc 0x3460c libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#4 pc 0x347b8 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#5 pc 0xb6668 libc.so (BuildId: 3e3c5ec517682e9d3afdceafc14d447f)
#6 pc 0x532cc libc.so (BuildId: 3e3c5ec517682e9d3afdceafc14d447f)

null pointer dereference: SIGSEGV 0x0000000000000018
#00 pc 0x2d350 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#1 pc 0x2d348 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#2 pc 0x27ae0 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#3 pc 0x3460c libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#4 pc 0x347b8 libunitytuningfork.so (BuildId: 04852f825bd5553cd874f1a06c85fd27ef52a1b5)
#5 pc 0xfb04c libc.so (BuildId: 373b3a68831a2041a671a8c53f383df5)
#6 pc 0x8e3b0 libc.so (BuildId: 373b3a68831a2041a671a8c53f383df5)

What can we do to fix it?

Monitoring App doesn't work due to "Cleartext HTTP traffic to localhost not permitted" error

I'm having issues using the monitoring app, I'm getting the following error: java.io.IOException: Cleartext HTTP traffic to localhost not permitted

I have already added android:usesCleartextTraffic="true" to the main AndroidManifest.xml file. I have also added android:networkSecurityConfig="@xml/network_security_config" to it.

Assets/Plugins/Android/res/xml/network_security_config.xml file content is:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
	<!-- Reference: https://forum.unity.com/threads/android-9-cleartext-http-traffic-to-my_ip-not-permitted.594298/#post-7215685 -->          
    <domain-config cleartextTrafficPermitted="true">
		<!-- For Android Performance Tuner data monitoring application https://developer.android.com/codelabs/android-performance-tuner-unity?hl=pt-br#7 -->
        <domain includeSubdomains="false">localhost</domain>
    </domain-config>
</network-security-config>

What am I doing wrong?
Even though I performed all these steps, I still get the following error:

2021/10/01 11:25:37.125 26048 30167 Info Unity [PlotAndroidPerformanceTunerStarter] Telemetry uploaded with request name: applications/com.explot.gouda/apks/32
2021/10/01 11:25:37.524 26048 30167 Info Unity [AndroidNotificationsPlatform.OnLocalNotificationReceived] Received notification with null AndroidNotificationIntentData, skipping this.
2021/10/01 11:25:38.070 26048 1288 Info TuningFork:Web Connecting to: http://localhost:9000/applications/com.explot.gouda/apks/32:uploadTelemetry
2021/10/01 11:25:38.074 26048 1288 Info System.out (HTTPLog)-Static: isSBSettingEnabled false
2021/10/01 11:25:38.074 26048 1288 Warn TuningFork:Web java.io.IOException: Cleartext HTTP traffic to localhost not permitted
2021/10/01 11:25:38.075 26048 1288 Warn TuningFork.GE Error 15 when sending UPLOAD request
2021/10/01 11:25:38.075 26048 1288 Warn TuningFork.GE {"name": "applications/com.explot.gouda/apks/32", "session_context": {"device": {"brand": "samsung", "build_version": "30", "cpu_core_freqs_hz": [2210000000, 2210000000, 2210000000, 2210000000, 2808000000, 2808000000, 2808000000, 2912000000], "device": "t2s", "fingerprint": "samsung/t2sxxx/t2s:11/RP1A.200720.012/G996BXXU3AUHB:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "SM-G996B", "product": "t2sxxx", "total_memory_bytes": 7536852992}, "game_sdk_info": {"session_id": "3258a3df-f798-46a0-b8bb-201ad3e01a79", "swappy_version": "1.3.0", "version": "1.3.11"}, "time_period": {"end_time": "2021-10-01T14:25:36.983966Z", "start_time": "2021-10-01T14:22:38.222980Z"}}, "telemetry": [{"context": {"annotations": "", "duration": "298.397631671s", "tuning_parameters": {"experiment_id": "", "serialized_fidelity_parameters": ""}}, "report": {"battery": {"battery_event": [{"app_on_foreground": false, "charging": true, "current_charge_microampere_hours": 4156025, 

AOT Compiler Confusion

The documentation contains this section regarding Unity's AOT compiler. It implies that if you're using IL2CPP you'll need to include the code mentioned.

  1. It's confusing about whether other versions of Unity like 2020-2022 require this as well.
  2. It's confusing why this isn't just automatically generated in the Assets/AndroidPerformanceTuniner_gen folder? In the APT package scripts, you know what version of Unity you're running and what enums are in DevTuningFork.cs (since this file is also auto-generated).
  3. During testing on Android (under Unity 2020.3.32 with IL2CPP), we did not include the recommended ForceReflectionInitialization code. There was no indication of a problem and the histograms showed up in the TuningFork testing app. But we're still not seeing data in the Google Play Console. Perhaps we need to publish the app first before it will appear in the Console? Or is ForceReflectionInitialization needed for Unity 2020 as well?
  4. The documentation lists LoadingState as an enum, but this is no longer available and has been replaced with its own system which uses LoadingTimeMetadata.LoadingState and LoadingTimeMetadata.LoadingSource. Do we need to use ForceReflectionInitialization on those two enums or others?

Security Policy violation Binary Artifacts

This issue was automatically created by Allstar.

Security Policy Violation
Project is out of compliance with Binary Artifacts policy: binaries present in source code

Rule Description
Binary Artifacts are an increased security risk in your repository. Binary artifacts cannot be reviewed, allowing the introduction of possibly obsolete or maliciously subverted executables. For more information see the Security Scorecards Documentation for Binary Artifacts.

Remediation Steps
To remediate, remove the generated executable artifacts from the repository.

Artifacts Found

  • Editor/Protoc/linux64/protoc
  • Editor/Protoc/mac/protoc
  • Editor/Protoc/win32/protoc.exe
  • Runtime/Plugins/Android/Google.Protobuf.dll
  • Runtime/Plugins/Android/arm64-v8a/libunitytuningfork.so
  • Runtime/Plugins/Android/armeabi-v7a/libunitytuningfork.so
  • Runtime/Plugins/Android/x86-64/libunitytuningfork.so
  • Runtime/Plugins/Android/x86/libunitytuningfork.so

Additional Information
This policy is drawn from Security Scorecards, which is a tool that scores a project's adherence to security best practices. You may wish to run a Scorecards scan directly on this repository for more details.


Allstar has been installed on all Google managed GitHub orgs. Policies are gradually being rolled out and enforced by the GOSST and OSPO teams. Learn more at http://go/allstar

This issue will auto resolve when the policy is in compliance.

Issue created by Allstar. See https://github.com/ossf/allstar/ for more information. For questions specific to the repository, please contact the owner or maintainer.

ReleaseAllScriptCaches error when launching Unity

Hi,

Plugin version 1.5
Unity version 2020.3.20

Within our main project, when launching Unity, the console shows the following error: ReleaseAllScriptCaches did not release all script caches!

Here is the relevant part of Editor.log:

Application.AssetDatabase Initial Script Refresh Start
Registering precompiled user dll's ...
Registered in 0.027311 seconds.
AssetDatabase: script compilation time: 0.070671s
Begin MonoManager ReloadAssembly
ReleaseAllScriptCaches did not release all script caches!
Remaining caches:
Native extension for LinuxStandalone target not found
Native extension for WindowsStandalone target not found
Native extension for iOS target not found
Native extension for Android target not found
Refreshing native plugins compatible for Editor in 224.66 ms, found 12 plugins.
Preloading 0 native plugins for Editor in 0.00 ms.
Refresh completed in 0.000001 seconds.
Refresh completed in 0.000000 seconds.
Refreshing native plugins compatible for Editor in 10.73 ms, found 12 plugins.
Mono: successfully reloaded assembly
Refresh completed in 0.000001 seconds.
Android Performance Tuner RefreshAssetsCompleted
UnityEngine.StackTraceUtility:ExtractStackTrace ()
UnityEngine.DebugLogHandler:LogFormat (UnityEngine.LogType,UnityEngine.Object,string,object[])
UnityEngine.Logger:Log (UnityEngine.LogType,object)
UnityEngine.Debug:Log (object)
Google.Android.PerformanceTuner.Editor.Initializer:RefreshAssetsCompleted () (at Library/PackageCache/com.google.android.performancetuner@1460780ffff9-1651255749193/Editor/Scripts/Initializer.cs:166)

(Filename: Library/PackageCache/com.google.android.performancetuner@1460780ffff9-1651255749193/Editor/Scripts/Initializer.cs Line: 166)

I can't reproduce the problem in an empty project. I can confirm that when I completely remove the AndroidPerformanceTuner plugin from the project, the error disappears. Also note that on subsequent script auto refresh within Unity, there is no such error in the console, the tuner generates properly.

Android Performance Tuner Initializer
UnityEngine.Debug:Log (object)
Google.Android.PerformanceTuner.Editor.Initializer:Init () (at Library/PackageCache/com.google.android.performancetuner@1460780ffff9-1651255749193/Editor/Scripts/Initializer.cs:113)
Google.Android.PerformanceTuner.Editor.Initializer:.cctor () (at Library/PackageCache/com.google.android.performancetuner@1460780ffff9-1651255749193/Editor/Scripts/Initializer.cs:108)
UnityEditor.AssetPostprocessingInternal:GetMeshProcessorsHashString ()

Android Performance Tuner RefreshAssetsCompleted
UnityEngine.Debug:Log (object)
Google.Android.PerformanceTuner.Editor.Initializer:RefreshAssetsCompleted () (at Library/PackageCache/com.google.android.performancetuner@1460780ffff9-1651255749193/Editor/Scripts/Initializer.cs:166)

As far as we can tell, the error doesn't seem to affect our project other than the plugin doesn't work after Unity starts (plugin setup window is completely empty with a big yellow warning icon top left, no text whatsoever). But after script refresh, setup window is fixed.

Our project is managed with Perforce so I had to mark all the files under /AndroidPerformanceTuner_gen to writable since the plugin regenerates or touches most of the files and we had tons of access denied errors. Not sure how that helps other than I'm wondering if there could be some permissions I missed that only affects Unity' start.

Would anyone have any insights on what could be causing this problem?

I'm also wondering if there is any ETA on the next release as I was checking some of the other issues (like #18) and would be interested in getting those fixes.

Thanks!

Keeping the settings consistent with other Google Products

Hi,

it would be great if this library would keep the settings consistent with other Google libraries.

We now have:

  • A top level menu item called "Google" (which is a no-no to me)
  • A Window -> Google item which only has the "Game Package Registry"
  • A Window -> Firebase menu item
  • A Window -> Google Play Games menu item
  • An Assets -> Google Mobile Ads menu item

It would be really great if this was kept consistent. I personally would prefer if all Google things would live under "Window -> Google -> ".

image

Error 15 - API Key appears to be valid

Hi, I'm seeing the following issue when running on device:

04-18 10:46:43.918 23210 23737 I TuningFork:Web: Response code: 400
04-18 10:46:43.918 23210 23737 I TuningFork:Web: Response message: Bad Request
04-18 10:46:43.918 23210 23737 W TuningFork:Web: java.io.FileNotFoundException: https://performanceparameters.googleapis.com/v1/applications/PACKAGE_NAME_REMOVED/apks/1:uploadTelemetry
04-18 10:46:43.918 23210 23737 W TuningFork.GE: Error 15 when sending UPLOAD request
04-18 10:46:43.918 23210 23737 W TuningFork.GE: {"name": "applications/PACKAGE_NAME_REMOVED/apks/1", "session_context": {"device": {"brand": "samsung", "build_version": "31", "cpu_core_freqs_hz": [1804800000, 1804800000, 1804800000, 1804800000, 6182400000, 6182400000, 6182400000, 6182400000], "device": "c2q", "fingerprint": "samsung/c2qcsx/c2q:12/SP1A.210812.016/N986WVLU2FVC5:user/release-keys", "gles_version": {"major": 3, "minor": 2}, "model": "SM-N986W", "product": "c2qcsx", "soc_manufacturer": "QTI", "soc_model": "SM8250", "swap_total_bytes": 4294963200, "total_memory_bytes": 11114958848}, "game_sdk_info": {"session_id": "e54b278c-2cb8-4288-9df1-822e430c2170", "swappy_version": "1.3.0", "version": "1.5.0"}, "time_period": {"end_time": "2022-04-18T17:46:43.545817Z", "start_time": "2022-04-18T17:46:13.558461Z"}}, "telemetry": [{"context": {"annotations": "CAE=", "duration": "29.987355561s", "tuning_parameters": {"experiment_id": "", "serialized_fidelity_parameters": ""}}, "report": {"battery": {"battery_event": [{"app

Startup logs:

04-18 10:45:43.526 23210 23403 I TuningForkUtils: Creating directory /data/user/0/PACKAGE_NAME_REMOVED/cache/tuningfork
04-18 10:45:43.526 23210 23403 I TuningFork: Got settings from tuningfork/tuningfork_settings.bin
04-18 10:45:43.527 23210 23403 I TuningFork: Using local file cache at /data/user/0/PACKAGE_NAME_REMOVED/cache/tuningfork
04-18 10:45:43.554 23210 23403 I TuningForkUtils: OpenGL version 3.2
04-18 10:45:43.555 23210 23403 I TuningFork: TuningFork.GoogleEndpoint: OK
04-18 10:45:43.556 23210 23403 E TuningFork: Could not open /proc/0/status
04-18 10:45:43.556 23210 23403 I TuningFork: TuningFork Settings:
04-18 10:45:43.556 23210 23403 I TuningFork:   method: 1
04-18 10:45:43.556 23210 23403 I TuningFork:   interval: 30000
04-18 10:45:43.556 23210 23403 I TuningFork:   n_ikeys: 4
04-18 10:45:43.556 23210 23403 I TuningFork:   n_annotations: 1
04-18 10:45:43.556 23210 23403 I TuningFork:   n_histograms: 4
04-18 10:45:43.556 23210 23403 I TuningFork:   base_uri: https://performanceparameters.googleapis.com/v1/
04-18 10:45:43.556 23210 23403 I TuningFork:   api_key: API_KEY_REMOVED
04-18 10:45:43.556 23210 23403 I TuningFork:   fp filename: dev_tuningfork_fidelityparams_1.bin
04-18 10:45:43.556 23210 23403 I TuningFork:   itimeout: 1000
04-18 10:45:43.556 23210 23403 I TuningFork:   utimeout: 100000
04-18 10:45:43.556 23210 23403 I TuningFork: Settings::Histograms
04-18 10:45:43.556 23210 23403 I TuningFork: ikey: 64000 min: 6.540000 max: 60.000000 nbkts: 200
04-18 10:45:43.556 23210 23403 I TuningFork: ikey: 64001 min: 10.000000 max: 40.000000 nbkts: 30
04-18 10:45:43.556 23210 23403 I TuningFork: ikey: 64003 min: 0.000000 max: 20.000000 nbkts: 30
04-18 10:45:43.556 23210 23403 I TuningFork: ikey: 64002 min: 0.000000 max: 20.000000 nbkts: 30
04-18 10:45:43.556 23210 23403 I TuningFork: No PAUSED histograms
04-18 10:45:43.556 23210 23403 I TuningFork: TuningFork initialized
04-18 10:45:43.556 23210 23403 I TuningForkUtils: Creating directory /data/user/0/PACKAGE_NAME_REMOVED/cache/tuningfork/V1
04-18 10:45:43.565 23210 23738 E TuningFork: Could not open /proc/0/oom_score

Details:

  • Android Performance Tuner 1.5.0 (latest)
  • Unity 2019.4.35f1
  • Using .NET 4.X
  • Frame pacing + vsync enabled as per the guide
  • ACCESS_NETWORK_STATE and INTERNET permissions are in the manifest.
  • Internet reachability is ReachableViaLocalAreaNetwork
  • API key was added and correctly displays in TuningFork Settings via logcat
  • I've confirmed the API key works by testing it with the provided BoatAttack example project, I'm only getting the 400 error when running tuningfork in our own project

Happy to provide any other information needed.

I am getting protoc compiler error in the package I imported

picone

pictwo

picthree

picfour

picfive

picsix

pictwelve

picseven

piceight

picnine

picten

piceleven

pictwelve

is there something i didn't add i couldn't solve the problem in any way i am not a professional developer please help?
unity version 2020.3.3
unity version 2021.3.8
unity version 2019.4.4
have the same error
c sharp version 2022,2019
framework version 4.7.1, 4.6

AndroidPerformanceTuner_gen is slowing Unity Editor script compile times

I have my own Assembly for our C# scripts in Unity (asmdef) and so when I make a change to my source files, Unity should only have to rebuild my Assembly. However, in Unity 2022.3 LTS they added more compiler transparency, so you can see that it's compiling APT_gen's assembly as well, every time. This is because the APT code is writing to DevTuningfork.cs even though there's no change in the file, so Unity detects this and rebuilds the assembly. This causes a slowdown in workflow for programmers where the project contains the APT system. Please add code so that APT doesn't write DevTuningfork.cs when there's no changes detected, or better yet, don't run APT rebuilding code at all unless the source files it cares about are modified (e.g. ones with Enums).

Linked docs outdated/confusing (LoadingState annotation)

I don't really know where best to report this but I keep running into small issues like trying to setup my scene loading so I of course follow the docs and read this section: https://developer.android.com/games/sdk/performance-tuner/unity/define-parameters#annotations

I read through and it says to look for LoadingState in my annotation and even explains how to set the loading state when loading a new scene below, so it's very confusing to me that I don't have this...

Upon some googling I come across the code here and see it's appears to be actually deprecated:

"This parameter is obsolete. You should remove it from annotation and use \"StartRecordingLoadingTime\" " +

The docs even say they were last updated in July so I think most people would assume they're pretty up to date and not everyone will look through code to find out more, it's a small little thing but a lot of this stuff is complicated for people's first time so I figured I should post an issue about it anyway

Also, there's this set of codelab tutorials I keep coming across which often ranks higher than the main docs, often very close but out of sync even with the main docs, which is another confusing point, I did give feedback on the docs pages but I can't really give context or information to that feedback

ProtocCompiler error on dev_tuningfork.proto - Error related to ascii codepoint

Hello, I've just created a new project for my next mobile game and decided to work with the integration of the plugins first.

When I imported the package(v1.5.2), An error message appears in console

ProtocCompiler error:
dev_tuningfork.proto:15:5: Interpreting non ascii codepoint 196.
dev_tuningfork.proto:15:5: Expected type name.
dev_tuningfork.proto:15:6: Interpreting non ascii codepoint 177.

UnityEngine.Debug:LogErrorFormat (string,object[])
Google.Android.PerformanceTuner.Editor.ProtocCompiler:CompileProto (string,string[],string) (at Assets/AndroidPerformanceTuner/Editor/Scripts/ProtocCompiler.cs:93)
Google.Android.PerformanceTuner.Editor.ProtocCompiler:GenerateProtoAndDesc () (at Assets/AndroidPerformanceTuner/Editor/Scripts/ProtocCompiler.cs:50)
Google.Android.PerformanceTuner.Editor.Initializer/<>c__DisplayClass29_0:b__0 () (at Assets/AndroidPerformanceTuner/Editor/Scripts/Initializer.cs:234)
Google.Android.PerformanceTuner.Editor.Initializer:CreateProtoFile (Google.Android.PerformanceTuner.Editor.DevDescriptor) (at Assets/AndroidPerformanceTuner/Editor/Scripts/Initializer.cs:248)
Google.Android.PerformanceTuner.Editor.Initializer:Init () (at Assets/AndroidPerformanceTuner/Editor/Scripts/Initializer.cs:138)
Google.Android.PerformanceTuner.Editor.Initializer:.cctor () (at Assets/AndroidPerformanceTuner/Editor/Scripts/Initializer.cs:112)

I've tried it with both Unity versions 2022.3.4f1 and 2021.3.22f1.
I've attached my dev_tuningfork.proto file. Any help?

Proto.zip

Settings not updating across computers (sourcetree/git)

We've noticed a bug with the Android Performance Tuner's settings not being saved correctly, or not being loaded correctly when added to git (sourcetree).

On my computer, when I go to the settings for this project, I observe the following annotation parameter settings in the window:
image

However, when the changed settings files are pushed through sourcetree and loaded on my colleague's computer, he sees the following:
image

Additionally, if he changes from "Use default parameters" to "Use custom parameters", the newest field I added to test this is also missing:
image

Further additionally, if I swap to a branch that doesn't have the performance tuner, and then swap back, it says I have unsaved changes and expects me to use default parameters? As follows:
image

I assume the settings here are either not being saved or loaded correctly when tested across computers using a repository.

Let me know if I can provide any more details on the matter.

Scene enum wont be built and throws exceptions trying to convert

07-28 07:52:25.336: E/Unity(4859): SetCurrentAnnotation({ }) result is InvalidAnnotation

Will be thrown as MessageUtil.SetScene(annotation, to.buildIndex) fails.

Unity build uses asset bundles, streaming assets or other methods that do not build the scene into the application. Such methods will result in the buildIndex returning -1 which is normal.

the scene name should be used instead.

  • Also, The scene enums to be registered must be added to the Build Settings in unity.

Bug in Addressable scenes support

The addressable scenes do not have an extension in our project, so the scene detection fails on trying to run string replace where the source string ends up being an empty string.

The offending line is here:

.Replace(Path.GetExtension(scenePath), "")

One workaround is of course to simply check if there is an extension before trying to remove it. It seems to work if I modify the code to do just that.

This is the full error:

ArgumentException: oldValue is the empty string.
System.String.ReplaceInternal (System.String oldValue, System.String newValue) (at <695d1cc93cca45069c528c15c9fdd749>:0)
System.String.Replace (System.String oldValue, System.String newValue) (at <695d1cc93cca45069c528c15c9fdd749>:0)
Google.Android.PerformanceTuner.AddressablesScenesEnumInfo.ConvertScenePathToProtoEnumEntry (System.String scenePath, System.Boolean isAddressableScene) (at Library/PackageCache/com.google.android.performancetuner@fa93d9d4e7/Runtime/Scripts/AddressablesScenesEnumInfo.cs:50)
Google.Android.PerformanceTuner.AddressablesScenesEnumInfo..ctor (System.String scenePath, System.Int32 value) (at Library/PackageCache/com.google.android.performancetuner@fa93d9d4e7/Runtime/Scripts/AddressablesScenesEnumInfo.cs:43)
Google.Android.PerformanceTuner.SetupConfig.UpdateAddressablesScenes () (at Library/PackageCache/com.google.android.performancetuner@fa93d9d4e7/Runtime/Scripts/SetupConfig.cs:121)
Google.Android.PerformanceTuner.Editor.AddressablesSettingsEditor.OnGUI () (at Library/PackageCache/com.google.android.performancetuner@fa93d9d4e7/Editor/Scripts/AddressablesSettingsEditor.cs:58)
Google.Android.PerformanceTuner.Editor.AndroidPerformanceTunerWindow.OnGUI () (at Library/PackageCache/com.google.android.performancetuner@fa93d9d4e7/Editor/Scripts/AndroidPerformanceTunerWindow.cs:176)
UnityEditor.HostView.InvokeOnGUI (UnityEngine.Rect onGUIPosition, UnityEngine.Rect viewRect) (at <55729f52d042492e9efc384182ae2feb>:0)
UnityEditor.DockArea.DrawView (UnityEngine.Rect viewRect, UnityEngine.Rect dockAreaRect) (at <55729f52d042492e9efc384182ae2feb>:0)
UnityEditor.DockArea.OldOnGUI () (at <55729f52d042492e9efc384182ae2feb>:0)
UnityEngine.UIElements.IMGUIContainer.DoOnGUI (UnityEngine.Event evt, UnityEngine.Matrix4x4 parentTransform, UnityEngine.Rect clippingRect, System.Boolean isComputingLayout, UnityEngine.Rect layoutSize, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, UnityEngine.Matrix4x4 worldTransform, UnityEngine.Rect clippingRect, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Action onGUIHandler, System.Boolean canAffectFocus) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.HandleIMGUIEvent (UnityEngine.Event e, System.Boolean canAffectFocus) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUIRaw (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.SendEventToIMGUI (UnityEngine.UIElements.EventBase evt, System.Boolean canAffectFocus, System.Boolean verifyBounds) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.IMGUIContainer.HandleEvent (UnityEngine.UIElements.EventBase evt) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.CallbackEventHandler.HandleEventAtTargetPhase (UnityEngine.UIElements.EventBase evt) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.MouseCaptureDispatchingStrategy.DispatchEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.ApplyDispatchingStrategies (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, System.Boolean imguiEventIsInitiallyUsed) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEventQueue () (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.OpenGate () (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcherGate.Dispose () (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.ProcessEvent (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.EventDispatcher.Dispatch (UnityEngine.UIElements.EventBase evt, UnityEngine.UIElements.IPanel panel, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.BaseVisualElementPanel.SendEvent (UnityEngine.UIElements.EventBase e, UnityEngine.UIElements.DispatchMode dispatchMode) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.UIElementsUtility.DoDispatch (UnityEngine.UIElements.BaseVisualElementPanel panel) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.UIElementsUtility.UnityEngine.UIElements.IUIElementsUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& eventHandled) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.UIEventRegistration.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.UIElements.UIEventRegistration+<>c.<.cctor>b__1_2 (System.Int32 i, System.IntPtr ptr) (at <e88faa3aac574192a3ac9d4dae8147a1>:0)
UnityEngine.GUIUtility.ProcessEvent (System.Int32 instanceID, System.IntPtr nativeEventPtr, System.Boolean& result) (at <1c34070ddd5b426b8f32df1db927aad1>:0)

Always response code: 400 and no telemetry update

Android Performance Tuner integrated, I got success message about initialisation apt

Screenshot 2021-08-13 at 00 20 42

But next I always have that

Screenshot 2021-08-13 at 00 33 22

What do I wrong?

I use custom annotations, no custom fidelity
Android 11, unity 2019.4.23, backend mono (on il2cpp the same problem, doesn't matter development or not)

@ktaraymovich @Lothav can you help me?

P.S: I found error, error was in API key

Assemblydef missing in AndroidPerformanceTuner_gen

When trying to follow the tutorial here, one issue is that FidelityParams and Annotation classes are generated into the "AndroidPerformancetuner_gen" folder. That folder doesn't have an asmdef, so it can't be easily included.

It can be fixed by manually creating a .asmdef file and adding the protobuf dependecy to it, but that's an extra step that's not mentioned in the tutorial and requires some digging into it.

Android Performance Tuner causes instant crash on emulators (Bluestacks/Nox)

As specified in the title, tuner causes instant (even before unity logo can be shown if it's enabled) crash. Not blackscreen, app just instantly closes. The problem is also not in the Optimized Frame Pacing, as the app crashes without it enabled just as well. On actual Android device, tuner works as intended - or does nothing if used. Even if tuner is not actually used in code in any way, it still crashes the app on emulators, it won't work if you add it to the project.

Is there a way to fix this or a workaround? Because there is no way to distinguish between emulator and actual android device.

Version 1.5.1 removes all scripting define symbols and it only leaves ANDROID_PERFORMANCE_TUNER_UTILITIES when applied

we`ve some scripting define symbols in Unity, when we imported the plugin, it overrides the scripting define symbols list, leaving only the one that the plugin needs.

i`ve corrected this issue by changing (Assets/AndroidPerformanceTuner/Editor/Scripts/Initializer.cs at line 168):

PlayerSettings.SetScriptingDefineSymbolsForGroup( EditorUserBuildSettings.selectedBuildTargetGroup, Paths.utilitiesScriptingSymbol);

For:

`string definesString = PlayerSettings.GetScriptingDefineSymbolsForGroup(EditorUserBuildSettings.selectedBuildTargetGroup);
System.Collections.Generic.List allDefines = new List(definesString.Split(';'));

        if (!allDefines.Contains(Paths.utilitiesScriptingSymbol))
            allDefines.Add(Paths.utilitiesScriptingSymbol);

        PlayerSettings.SetScriptingDefineSymbolsForGroup(
            EditorUserBuildSettings.selectedBuildTargetGroup,
            string.Join(";", allDefines.ToArray()));`

Protoc & macOS Catalina

When using macOS Catalina, I'm getting the following error:

image

I was able to resolve it by running Cmd + Clicking the package. But this is something that everyone on our team has to do now when building for the first time.

Is it necessary to include the protoc compiler? We usually pre-build our protocol buffers files, maybe that's possible here as well (and only include the built files, but not the protoc compiler).

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.