2017-06-27 4 views
1

をビルドエラー:OnCreateの内部にある次のコード行(から CurrentPlatform is inacessbile due to its protection levelXamarin.AndroidがXamarin.Formsソリューションの私のAndroidのプロジェクトで私のMainActivity.csに次のエラーの取得対象のSDKを変更した後

を)、のみCurrentPlaftorm部分に下線:私はV6.0からV7.0への私のMonoAndroidをアップグレードし、JDK 1.8のようなものが付属して、すべての必要な更新をしたまで Microsoft.WindowsAzure.MobileServices.CurrentPlatform.Init();

私はこのエラーを受信しませんでした。 誰かがこのエラーの意味と、なぜそれがCurrentPlatform専用に呼び出されているのかを説明できるかどうかを知りたい。

新しいプロジェクトでこのエラーを再現しようとしましたが、Microsoft.WindowsAzure.MobileServices.と入力した時点で問題なくCurrentPlatformオプションを利用できました。また

は現在WindowsAzureコンポーネントからLoginAsync()を呼び出す MobileServiceClientタイプを使用して線があることに使用されるパラメータに2つのエラーをスロー:

await client.LoginAsync(context, "facebook");

しかし、私は今、以下の2つのエラーを受け取ります。 Argument 1: cannot convert from 'Android.Content.Context' to 'Microsoft.WindowsAzure.MobileServices.MobileServiceAuthenticationProvider' Argument 2: cannot convert from 'string' to 'Newtonsoft.Json.Linq.JObject'

私は私のAndroidのターゲットSDKを変更したとき、彼らはMicrosoft.WindowsAzure cのほんの一部だったようなコードのこの2つの領域が壊れた理由はわかりません成分。

+0

LoginAsyncメソッドが変更されました。 'client.LoginAsync(MobileServiceAuthenticationProvider.Facebook、token)'のようなものです。ここで 'token'はオプションのJObjectトークンです。 –

答えて

1

Android Target SDKをMicrosoft.WindowsAzureコンポーネントの一部として変更したときに、これらの2つのコード領域が壊れている理由がわかりません。

あなたの説明によると、私はあなたが参照したAzure Mobile Client SDKのバージョンに料金を請求すると仮定しました。

  • Azure Mobile Client SDK 3.1.0については、次のパスからのlibを参照しますあなたのクライアント:

    Microsoft.Azure.Mobile.Client.3.1.0\lib\monoandroid\Microsoft.WindowsAzure.Mobile.Ext.dll

    あなたはLoginAsyncのための拡張メソッドをチェックするILSpyを活用できは次のように: enter image description here

中にはAzure Mobile Client SDK 4.0.0-alpha-001、あなたのMonoAndroid> = 4.4は、その後、LIBは、下の参照であるかどう:

:あなたのMonoAndroid> = 7.1は、その後、LIBは、下の参照になる場合、

Azure Mobile Client SDK 4.0.0については

Microsoft.Azure.Mobile.Client.4.0.0-alpha-001\lib\monoandroid44\Microsoft.Azure.Mobile.Client.dllenter image description here

  • Microsoft.Azure.Mobile.Client\4.0.0\lib\monoandroid71\Microsoft.Azure.Mobile.Client.dll

    のAndroid 6.0への私の以前のプロジェクトの目標は、libにのみMicrosoft.Azure.Mobile.Client.4.0.0\lib\netstandard1.4\Microsoft.Azure.Mobile.Client.dllを参照して、のための拡張メソッドがありませんでしょうサーバーフロー認証による。要約すると

あなたがServer-managed authenticationを使用している、あなたのコードawait client.LoginAsync(context, "facebook");から、私はあなたのAndroid SDKのバージョンをアップグレードせずAzureのモバイルクライアントSDK 3.1.0を使用するか、最新のAzureのモバイルクライアントSDK 4.0を使用することができることをお勧めします。 Android SDKのバージョンを7.1以上にアップグレードしてください。

さらに、コードclient.LoginAsync(MobileServiceAuthenticationProvider.Facebo‌​ok,{JObject token})Client-managed authenticationを使用しています。この時点で、あなたのアプリはアイデンティティプロバイダに個別に連絡して、ログイン時にあなたのAzureモバイルバックエンドで戻ったトークンを提供することができます。

+0

Azure Mobile Client SDKを3.1.0に戻して、今度は再び動作させることができました。正しい方向に私を指摘してくれてありがとう。 –

関連する問題