2012-04-04 5 views
-4

AndroidとJavaを発明した人は、自分自身で発明したことはありません。私がAndroidでJavaを使ってアプリケーションを開発して以来、私は最もばかげたエラーを抱えています。私は本当に狂っています(もしそうならば、GoogleとSun Microsystemsは "booooom"を作っていきます)文字列の長さを取得しようとすると、Androidアプリケーションがクラッシュする

私は、引数として渡される文字列の長さを取得します。アプリケーションがちょうどクラッシュし、私は数分間キーボードを罵倒したり拷問したりしています。

マイコード:

@Override 
protected void onPostExecute(String result) { 
    if (result.length() == 0) { 
     txtStatus.setText("Ready"); 
    } 
} 

私はそれが動作条件を削除する場合(テキスト「準備完了」が私のTextViewに表示されます)。これは奇妙なことであり、私は何か小さなものを見逃しているかもしれないことを知っています。

私にいくつかの手がかりを与え、すべてに感謝します!

P.S.あなたの隣人から銃撃が聞こえたら、それは私かもしれません。

+0

Eclipseやコマンドラインから利用可能なlogcatユーティリティについて学びましょう。何かがクラッシュすると、logcat出力には、NULLポインタ例外などの有用なヒントを持つスタックトレースが含まれます。最悪の場合は、例外メッセージをGoogle検索にコピーして貼り付けて、同じ問題を抱えている他の人を見つけて、すでに問題を解決した他の人の知恵を得る。 – Colin

答えて

4

あなたの文字列はおそらくnullです。結果は最初のnullの場合、適切に処理し、チェックし、それは長さだ

@Override 
protected void onPostExecute(String result) { 
    if (result != null && result.length() == 0) { 
     txtStatus.setText("Ready"); 
    } 
} 
+0

うん!私は結果をnullとして開始しましたが、Webページから空のコンテンツを取得した後は空の文字列になると思っていました。とにかく、あなたの答えは私の解決策でした。ありがとう! – ali

1

はこれを試してみてください。このようにそれを行います。私の最高の推測では、未処理のNullPointerExceptionがあります。

@Override 
protected void onPostExecute(String result) { 
    if (result == null) { 
     result = ""; // change this line if null is an error. 
    } 
    if (result.length() == 0) { 
     txtStatus.setText("Ready"); 
    } 
} 

デバッグ技術間違っているかを把握すると、プログラムがクラッシュを作ることはtry/catchブロックで条件をラップすることです。

@Override 
protected void onPostExecute(String result) { 
    try { 
     if (result.length() == 0) { 
      txtStatus.setText("Ready"); 
     } 
    catch (Throwable t) { // both error and exception inherit from Throwable. 
     // print or inspect 't' here to determine the reason for the crash. 
    } 
} 
0

チェック:

@Override 
protected void onPostExecute(String result) { 
    if (!TextUtils.isEmpty(result)) { 
     txtStatus.setText("Ready"); 
    } 
} 
0

あなたの文字列がnullである可能性があるため、Waqasによると問題があります。文字列がヌルの場合、メソッドの長さは定義されていません。ヌルの追加条件を追加するには

if(result ==NULL) 
// do something else 
else 
//your code here 
関連する問題