2015-10-02 11 views
5

Tôi đang cố gắng tìm hiểu client-server-giao tiếp với Android và php với hướng dẫn này:Client-Server-Truyền thông với php và android

http://androidexample.com/How_To_Make_HTTP_POST_Request_To_Server_-_Android_Example/index.php?view=article_discription&aid=64&aaid=89

Vì vậy, tôi đã thành công để làm cho ứng dụng (chính xác một trong các hướng dẫn) và php-script hoạt động, quá (tôi đã thử nghiệm nó với chrome-extention "Advanced Rest Client").

Nhưng khi tôi đang chạy ứng dụng và nhấp vào nút để gửi dữ liệu, văn bản trong TextView (tôi đã đặt nó thành "hello world" để kiểm tra) biến mất và không có gì khác xảy ra. TextView vẫn rõ ràng.

Trong manifest file tôi bao gồm các

<uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

trước khi ứng dụng thẻ.

Tôi có thể làm gì bây giờ?


Vì vậy, tôi putted ra exeptions và nhận được:

10-02 11:56:41.816 13275-13275/? V/Helloagain﹕ android.os.NetworkOnMainThreadException 
      at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133) 
      at java.net.InetAddress.lookupHostByName(InetAddress.java:410) 
      at java.net.InetAddress.getAllByNameImpl(InetAddress.java:241) 
      at java.net.InetAddress.getAllByName(InetAddress.java:219) 
      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70) 
      at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50) 
      at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340) 
      at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87) 
      at libcore.net.http.HttpConnection.connect(HttpConnection.java:128) 
      at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:316) 
      at libcore.net.http.HttpEngine.connect(HttpEngine.java:311) 
      at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:290) 
      at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:240) 
      at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:81) 
      at libcore.net.http.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:197) 
      at .MainActivity.GetText(MainActivity.java:99) 
      at .onClick(MainActivity.java:54) 
      at android.view.View.performClick(View.java:4421) 
      at android.view.View$PerformClick.run(View.java:17904) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5214) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
      at dalvik.system.NativeStart.main(Native Method) 
10-02 11:56:41.826 13275-13275/? V/Helloagain﹕ java.lang.NullPointerException 
      at .MainActivity.GetText(MainActivity.java:134) 
      at .MainActivity$1.onClick(MainActivity.java:54) 
      at android.view.View.performClick(View.java:4421) 
      at android.view.View$PerformClick.run(View.java:17904) 
      at android.os.Handler.handleCallback(Handler.java:730) 
      at android.os.Handler.dispatchMessage(Handler.java:92) 
      at android.os.Looper.loop(Looper.java:137) 
      at android.app.ActivityThread.main(ActivityThread.java:5214) 
      at java.lang.reflect.Method.invokeNative(Native Method) 
      at java.lang.reflect.Method.invoke(Method.java:525) 
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 
      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 
      at dalvik.system.NativeStart.main(Native Method) 
+0

bạn đang cố tạo kết nối mạng trên chuỗi chính. đó là [không được phép trong android] (http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html). kiểm tra [this] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) để biết thêm chi tiết. –

Trả lời

0
  1. Android bằng cách mặc định không đã kích hoạt truy cập internet trên các chủ đề chính, vì vậy bạn có 2 giải pháp:

      1. Tạo chủ đề mới sẽ truy cập internet
      1. Thêm dòng này trước khi truy cập internet (bạn có thể sử dụng google để biết thêm về vấn đề này)

    chính sách StrictMode.ThreadPolicy = new StrictMode.ThreadPolicy .Builder(). AllowAll(). Build(); StrictMode.setThreadPolicy (chính sách);

Các vấn đề liên quan