1

Android、Eclipse内で簡単なFreebaseクエリを試みています。エンコードされた URL をコピーして貼り付け、ブラウザーにコピーして貼り付けると、正しい結果が表示されるため、URL は正しくコンパイルされると思います。HttpResponse httpResponse = httpClient.execute... という行が IOException をスローしています。

JSONParser parser = new JSONParser();
String query = "{\"type\":\"/user/tsegaran/language/phrase\",\"id\":null,\"name\":\"Affidavit\",\"/user/tsegaran/language/phrase/translation\":[]}";
String testQuery = URLEncoder.encode(query, "UTF-8");
String testQuery1 = "https://www.googleapis.com/freebase/v1/mqlread?query=" + testQuery + "&key=" + API_KEY;
HttpClient httpClient = new DefaultHttpClient();
HttpResponse httpResponse = httpClient.execute(new HttpGet(testQuery1));
JSONObject response = (JSONObject)parser.parse(EntityUtils.toString(httpResponse.getEntity()));
String jsonResults =  response.getString("result");
JSONObject object = (JSONObject) new JSONTokener(jsonResults).nextValue();
String name = object.getString("/user/tsegaran/language/phrase/translation");
...

これは、私のスタック トレースのより適切な形式のバージョンです。

java.net.UnknownHostException: www.googleapis.com
java.net.InetAddress.lookupHostByName(InetAddress.java:506)
java.net.InetAddress.getAllByNameImpl(InetAddress.java:294)
java.net.InetAddress.getAllByName(InetAddress.java:256)
 org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:136)
org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
 org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:359)
org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:555)
 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
 org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:465)
com.example.nworthen_androidpoc.MainActivity.test(MainActivity.java:60)
com.example.nworthen_androidpoc.MainActivity.onCreate(MainActivity.java:32)
android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
android.app.ActivityThread.access$1500(ActivityThread.java:117)
android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:130)
android.app.ActivityThread.main(ActivityThread.java:3683)
java.lang.reflect.Method.invokeNative(Native Method)
java.lang.reflect.Method.invoke(Method.java:507)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
dalvik.system.NativeStart.main(Native Method)

私の例外は一貫していませんでした (NullPointer、IOException、NetworkonMainThread)。投稿されたコードを AsyncTask に追加しました。残念ながら、Logcat で出力を取得できなくなりましたが、デバッグ時に次のように表示されます。 Class File Editor

ソースが見つかりません JAR ファイル C:/users..... にソースが添付されていません。ソースを添付できます... // ThreadPoolExecutor.java からコンパイル (バージョン 1.5 : 49.0、スーパービット)

public class java.util.concurrent.ThreadPoolExecutor extends java.util.concurrent.AbstractExecutorService {

  // Method descriptor #17 (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V
  // Signature: (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue<Ljava/lang/Runnable;>;)V
  // Stack: 3, Locals: 7
  public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, java.util.concurrent.TimeUnit unit, java.util.concurrent.BlockingQueue workQueue);
     0  aload_0 [this]
     1  invokespecial java.util.concurrent.AbstractExecutorService() [1]
     4  new java.lang.RuntimeException [2]
     7  dup

...

4

1 に答える 1

1

アプリにインターネットへのアクセス許可があることを確認しましたか?

参照: https://stackoverflow.com/a/442590/81821

于 2013-02-19T22:51:18.080 に答える