2012-02-09 14 views
2

皆さん、こんなに奇妙なエラーが発生しました。スレッド "main"の例外java.lang.RuntimeException:スタブ

package com.androidbook.services.httpget; 

import java.io.BufferedReader; import java.io.IOException; 
import java.io.InputStreamReader; 
import org.apache.http.HttpResponse; 
import org.apache.http.client.HttpClient; 
import org.apache.http.client.methods.HttpGet; 
import org.apache.http.impl.client.DefaultHttpClient; 

import android.app.Activity; 
import android.os.Bundle; 

public class HttpGetDemo extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     BufferedReader in = null; 
     try { 
      HttpClient client = new DefaultHttpClient(); 
      HttpGet request = new HttpGet("http://code.google.com/android/"); 
      HttpResponse response = client.execute(request); 
      in = new BufferedReader(
        new InputStreamReader(
         response.getEntity().getContent())); 

      StringBuffer sb = new StringBuffer(""); 
      String line = ""; 
      String NL = System.getProperty("line.separator"); 
      while ((line = in.readLine()) != null) { 
       sb.append(line + NL); 
      } 
      in.close(); 

      String page = sb.toString(); 
      System.out.println(page); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace();   } finally { 
      if (in != null) { 
       try { 
        in.close(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 
     } 
    } 
} 

とエラーはあなたがここにAndroidのSDKの輸入を持ってこの

Exception in thread "main" java.lang.RuntimeException: Stub! 
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:5) 
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:7) 
    at ClientWithResponseHandler.main(ClientWithResponseHandler.java:15)` 
+3

おそらく次のようになります。 http://stackoverflow.com/questions/3896064/how-to-develop-using-android-libraries-in-a-simple-java-project-without-using-d –

答えて

6

です。あなたはPCからこれを(普通のJavaプロジェクトのように)実行しようとしていますか?

このエラーは、実際のメソッドへのアクセス権を持っているか、使用しようとしているが、唯一のスタブにされているオブジェクトがないことを意味 - それがないすべてはあなたが見る、この例外がスローされる方法。

は、あなたが(アンドロイドデバイスまたは上)エミュレータ上であなたのAndroidプロジェクトを実行し、Androidデバイス上で実行されていないプロジェクトにアンドロイドから何かをインポートしていないことを確認します。

0

あなたは、Androidのパッケージ内のapacheのクラスがJVMにおけるものとは異なるので、ということになっています。依存関係を通常のapacheクラスに追加し、mavenを使用している場合は、これらの依存関係がテストプラットフォームのアンドロイドプラットフォームの前にロードされていることを確認してください(まあ、jUnit 4と同じです)。その後、JVMでapache HTTPメソッドを含むクラスをテストすることができますが、JVMはサーバーへの呼び出しを行わないため、これは、クラス。

関連する問題