This page contains information on how to diagnose and fix common errors. It is
divided into sections based on error codes and log messages.

## Response code 400

    Connecting to: https://performanceparameters.googleapis.com/v1/applications/...
    TuningFork:Web: Response code: 400
    TuningFork:Web: Response message: Bad

You can get this error if your API key is invalid. See
[Enable the API](https://developer.android.com/games/sdk/performance-tuner/unity/enable-api) and section
[Configure the plugin](https://developer.android.com/games/sdk/performance-tuner/unity/integrate-plugin#configure).

## Response code 403

    TuningFork:Web: Connecting to: https://performanceparameters.googleapis.com/v1/applications/...:generateTuningParameters
    TuningFork:Web: Response code: 403
    TuningFork:Web: Response message: Forbidden

You can get this error if your API key is not enabled or you made an error when
restricting the API key (for example, you used the wrong certificate or hash
value). See [Enable the API](https://developer.android.com/games/sdk/performance-tuner/unity/enable-api).

## "No parameters: no fidelity parameters" warning and "java.lang.NoSuchFieldError" shown in logs

    TuningFork:FPDownload: No parameters: no fidelity parameters
    TuningFork: java.lang.NoSuchFieldError: no "[Landroid/content/pm/ApplicationInfo;" field "applicationInfo" in class "Landroid/content/pm/PackageInfo;" or its superclasses
    TuningFork: Could not get fidelity params from server : err = 4

These are harmless warnings emitted by the Tuning Fork library when
checking to see if the app has the debuggable flag set. While verbose, they are
harmless and are not indicative of a problem in the integration of the library.
**You can ignore these warnings**.

## Multiple Google.Protobuf.dll files

    PrecompiledAssemblyException: Multiple precompiled assemblies with the same name
    Google.Protobuf.dll included for the current platform.
    Only one assembly with the same name is allowed per platform. Assembly paths: ...

    Error: The imported type `Google.Protobuf.IMessage<T>' is defined multiple times

You can get one of these errors if your project contains multiple
`Google.Protobuf.dll` files. Remove one of the `.dll` files to resolve this
conflict.

## Attempting to call method ... for which no ahead of time (AOT) code was generated

    ExecutionEngineException: Attempting to call method 'Google.Protobuf.Reflection.ReflectionUtil+ReflectionHelper' ... for which no ahead of time (AOT) code was generated.

You can see this error on some versions of Unity. This error occurs if the AOT
compiler is not generating code for generic methods. For information on how to
force generate required code, see section
[Ahead-of-time compile (AOT)](https://developer.android.com/games/sdk/performance-tuner/unity/initialize-library#aot-compile).

## The type or namespace name 'Protobuf' does not exist in the namespace 'Google'

    The type or namespace name `Protobuf' does not exist in the namespace `Google'. Are you missing an assembly reference?

Make sure your project is using **.NET 4.x** . Check **Player Settings \> Other
Settings \> Configuration \> Scripting Runtime Version**.

## LoadingSceneTracker.cs: The type or namespace name 'FidelityParams' could not be found

    LoadingSceneTracker.cs: The type or namespace name 'FidelityParams' could not be found (are you missing a using directive or an assembly reference?)
    LoadingSceneTracker.cs: The type or namespace name 'Annotation' could not be found (are you missing a using directive or an assembly reference?)

Remove `ANDROID_PERFORMANCE_TUNER_UTILITIES` from
**Player Settings \> Scripting Define Symbols**.