Xamarin.Androidアプリを開発しています。 JSONフィードをダウンロードしようとすると、エラーが表示されます。「アプリはブレーク状態になりましたが、すべてのスレッドが外部コードを実行していたため表示するコードがありません」。
JSONフィードのダウンロードコード
string url = "http://xamdev.epizy.com/getData1.php";
public async void downloadJsonFeedAsync(String url) {
var httpClient = new HttpClient();
Task<string> contentsTask = httpClient.GetStringAsync(url);
// await! control returns to the caller and the task continues to run on another thread
string content = await contentsTask;
Console.Out.WriteLine("Response Body: \r\n {0}", content);
//Convert string to JSON object
result = Newtonsoft.Json.JsonConvert.DeserializeObject<RootObject> (content);
//Update listview
RunOnUiThread (() => {
listView.Adapter = new CusotmListAdapter(this, result.posts);
progress.Visibility = ViewStates.Gone;
});
}
この行にエラーがあります
string content = await contentsTask;
これは私のJSON
{"posts":[{"id": "1"、 "url": ""、 "title": "Androidアプリケーションで音声をテキストに変換する"、 "date": "2017-06-16 06:15:18 "、" content ":" Androidアプリケーションで音声をテキストに変換Androidアプリケーションで音声をテキストに変換Androidアプリケーションで音声をテキストに変換]、[サムネイル] : "http:\/\/stacktips.com \/wp-content \/uploads \/2017 \/01\/Speech-to-Text-in-Android-375x300.jpeg"}]}
誰でも私のコードの何が間違っているのか教えてもらえますか?前もって感謝します..
これは私のPHP Webサービスコードです-
<?php
if($_SERVER['REQUEST_METHOD']=='GET'){
require_once('conn.php');
$sql = "SELECT * FROM space";
if ($result = mysqli_query($conn, $sql))
{
$resultArray = array();
$tempArray = array();
while($row = $result->fetch_object())
{
$tempArray = $row;
array_Push($resultArray, $tempArray);
}
echo json_encode(array("result"=>$resultArray));
}
mysqli_close($conn);
}
?>
ついに私は答えを得ました。
問題は、ホスティングサーバー、Cookieを含むサーバー応答にありました。だからこそ、my Androidアプリはjsonを解析できません。
手伝ってくれてありがとう。
この問題に対して投稿されたベストアンサーではないことに驚いています。上記のソリューションではうまくいきませんでした。この問題を解決するには、デバッグメニューから次のオプションを無効にします。
Debug > Options > General > Uncheck "Enable Just My Code"
詳細については、 Microsoft msdn helpを確認してください。
例外の詳細と呼び出しスタックを取得する必要があります。これは、デバッグ作業を大幅に支援します。これは、現在VS2017でのXamarinのバグだと思います。
私はこのエラーに出くわし、アプリケーションが失敗した後に出力ウィンドウを調べました。私の場合、XMALによって呼び出される「タスク」を持つビューモデルクラスにメソッドがありました。
それが誰かを助ける場合:
出力タブには、dllバージョンが正しくないというメッセージが表示されていました。
とにかくプロジェクトは実行されましたが、何らかの理由でこのdllバージョンがプロジェクトをブレークモードにしたため、dllを削除し、以前のバージョンを使用して、問題なくデバッグできるようになりました
私の特定のケースでは、デバッグ出力ウィンドウを確認し、「PDBファイルが見つからないか、開くことができません」と述べました。さらに読みましたが、解決策の1つは、作成した静的変数参照を確認することでした。 AppSettingsから静的変数を読み込みましたが、app.Configファイルに存在しないキーを参照していました。デバッガーが、参照が見つからないか、そのようなものを直接教えてくれたらと思います。正しい参照キーを取得したら、途中でした。これが誰かの助けになることを願っています。