Я успешно выполнял приведенный ниже код на 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.