Java.Lang.LinkageError: нет нестатического метода на Xamarin. Android, свойственный только Nougat - PullRequest
0 голосов
/ 29 апреля 2018

Я успешно выполнял приведенный ниже код на KitKat и Marshmallow, пока не протестировал его на Nougat, и он не начал падать.

Вот фрагмент из моего кода.

public GoogleApiClient GApiClient { get; private set; }

    protected override void OnResume()
    {
        base.OnResume();
        if(GApiClient == null)
        {
            GApiClient = new GoogleApiClient.Builder(this)
            .AddApi(DriveClass.API)
            .AddScope(DriveClass.ScopeFile)
            .AddScope(DriveClass.ScopeAppfolder)
            .AddConnectionCallbacks(this)
            .AddOnConnectionFailedListener(this)
            .Build();
        }
        GApiClient.Connect();
    }

После успешного подключения я выполняю это где-то в коде.

if (GApiClient != null && GApiClient.IsConnected)
{
     await LoadCloudItems();
}

private async Task LoadCloudItems()
{
    IDriveFolder appFolder = DriveClass.DriveApi.GetAppFolder(GApiClient);
    // app already crashes at this point, without getting to the next line.
    //... some other async code
}

Что приводит к этой ошибке:

Java.Lang.LinkageError: no non-static method "Lcom/google/android/gms/internal/zzbio;.getAppFolder(Lcom/google/android/gms/common/api/GoogleApiClient;)Lcom/google/android/gms/drive/DriveFolder;"

Я тестировал этот код несколько раз на Android 4.4 и 6.0, без каких-либо проблем. Я выполнил чистоту, перестроил все и так далее в своем проекте VS2017, но все безрезультатно.

Эта проблема сохранялась в течение нескольких обновлений моего приложения, и я не знаю, почему она продолжает работать только на Nougat.

...