2016-07-05 7 views
-1

何か助けに感謝します。 Android Studio用のMicrosoft Azure Mobile SDKを使用してAndroidアプリのバックエンドを作成しました。しかし、私はクエリを使用してサーバーからデータを取得しようとすると、アプリケーションがハングし、クラッシュします。次のように私のコードは次のとおりです。AzureのSQLクエリが行われたときにAndroidアプリがクラッシュする

//The variables 
private MobileServiceClient mClient; 
private MobileServiceTable<Item> table; 

//In onCreate method 
try { 
    mClient = new MobileServiceClient("https://myapp.azurewebsites.net", this); 
} catch (MalformedURLException e) { 
    e.printStackTrace(); 
} 
table = mClient.getTable("MyTable",Item.class); 
try { 
    final List<Item> result = table.execute().get();//----App crashes here 
} catch (MobileServiceException e) { 
    e.printStackTrace(); 
} 
+0

stacktraceとは何ですか? 「ハングとクラッシュ」には、正確にゼロの詳細が含まれています。 – f1sh

+1

これがメインスレッドであれば、クエリを実行し、そのような結果を得るとNetworkOnMainThreadExceptionが発生します。しかし、私は推測しているスタックトレースを投稿しませんでした。一般的には、AsyncTaskに対してget()を行うべきではありません。私は彼らがそれを使用するのを止めるために呼び出しを削除したいと思います。 –

+0

おそらくNetworkOnMainThreadExceptionとして取得しています。メインスレッドでネットワークタスクを実行しないでください。 ASyncTaskを使用します。 また、スタックトレースを質問に表示して、エラーが表示されるようにする必要があります。 – apmartin1991

答えて

1

@AnshaySaboo Azureの上Azure Mobile Servicesという名前の2つのサービス(Azureの古典的なポータル上の古いサービス)& Azure Mobile Apps(Azureの新しいポータル上の新しいサービス)があります。あなたの説明によると、あなたが使ったサービスはわかりません。しかし、コンストラクタMobileServiceClient(String appUrl, Context context)に基づいて、Azure Mobile Apps SDK for Androidではなく、Azure Mobile Services SDK for Androidを使用していると思います。

Azureの新しいポータルでMobile Appサービスを作成するときに、Android用Mobile Service SDKを使用することによって問題が発生している可能性があります。だから、バックエンドとして使用したサービスとAndroidクライアント用に使用したサービスを確認し、バックエンドとクライアントのサービスの一貫性を確認してください。

参考として、さまざまなサービスのためのリソースがいくつかあります。

  1. Mobile ServicesMobile Appsを開始してください。
  2. Mobile ServicesのAndroidクライアントライブラリの使用方法vs Mobile Apps
  3. GitHubのサンプル:Mobile ServicesMobile Apps
関連する問題