2016-01-18 4 views
0

Это мой main.xmlНе удается подключиться к андроида PHPMyAdmin

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" android:layout_width="fill_parent" 
android:layout_height="fill_parent"> 
<ListView android:id="@android:id/list" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" /> 
</LinearLayout> 

Это мой манифест.

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.jv.connection"> 


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

    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 

    <activity 
     android:name="com.jv.dataevent.MainActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 

</application> 

И это мой MainActivity.

package com.jv.dataevent; 

import android.app.ListActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 

import com.jv.connection.R; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.InputStreamReader; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 
import java.util.ArrayList; 

public class MainActivity extends ListActivity { 

/** 
* Called when the activity is first created. 
*/ 
@SuppressWarnings("unchecked") 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.content_main); 

    setListAdapter(new ArrayAdapter(
      this, android.R.layout.simple_list_item_1, 
      this.populate())); 
} 

private ArrayList populate() { 
    ArrayList items = new ArrayList(); 

    try { 
     URL url = new URL("http://10.0.2.2/food.php"); 
     HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); 
     urlConnection.setRequestMethod("POST"); 
     urlConnection.connect(); 

     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
         urlConnection.getInputStream())); 

     String next; 
     while ((next = bufferedReader.readLine()) != null) { 
      JSONArray ja = new JSONArray(next); 

      for (int i = 0; i < ja.length(); i++) { 
       JSONObject jo = (JSONObject) ja.get(i); 
       items.add(jo.getString("food_id")); 
       items.add(jo.getString("food_name")); 
      } 
     } 
    } catch (MalformedURLException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } catch (JSONException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    return items; 
    } 
} 

Я хочу подключить свое приложение Android к базе данных и прочитать его в элементе списка. Когда я играю в эмулятор, он показывает, к сожалению, myapp остановился. И он показывает эту ошибку

01-18 12:20:08.188 27841-27841/com.jv.dataevent E/AndroidRuntime: FATAL EXCEPTION: main 
                   Process: com.jv.dataevent, PID: 27841 
                   java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jv.dataevent/com.jv.dataevent.MainActivity}: android.os.NetworkOnMainThreadException 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
                    at android.app.ActivityThread.access$800(ActivityThread.java:135) 
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
                    at android.os.Handler.dispatchMessage(Handler.java:102) 
                    at android.os.Looper.loop(Looper.java:136) 
                    at android.app.ActivityThread.main(ActivityThread.java:5001) 
                    at java.lang.reflect.Method.invokeNative(Native Method) 
                    at java.lang.reflect.Method.invoke(Method.java:515) 
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
                    at dalvik.system.NativeStart.main(Native Method) 
                   Caused by: android.os.NetworkOnMainThreadException 
                    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145) 
                    at libcore.io.BlockGuardOs.connect(BlockGuardOs.java:84) 
                    at libcore.io.IoBridge.connectErrno(IoBridge.java:127) 
                    at libcore.io.IoBridge.connect(IoBridge.java:112) 
                    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:192) 
                    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:459) 
                    at java.net.Socket.connect(Socket.java:843) 
                    at com.android.okhttp.internal.Platform.connectSocket(Platform.java:131) 
                    at com.android.okhttp.Connection.connect(Connection.java:101) 
                    at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:294) 
                    at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255) 
                    at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206) 
                    at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345) 
                    at com.android.okhttp.internal.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:89) 
                    at com.jv.dataevent.MainActivity.populate(MainActivity.java:44) 
                    at com.jv.dataevent.MainActivity.onCreate(MainActivity.java:32) 
                    at android.app.Activity.performCreate(Activity.java:5231) 
                    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
                    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
                    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)  
                    at android.app.ActivityThread.access$800(ActivityThread.java:135)  
                    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
                    at android.os.Handler.dispatchMessage(Handler.java:102)  
                    at android.os.Looper.loop(Looper.java:136)  
                    at android.app.ActivityThread.main(ActivityThread.java:5001)  
                    at java.lang.reflect.Method.invokeNative(Native Method)  
                    at java.lang.reflect.Method.invoke(Method.java:515)  
                    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)  
                    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)  
                    at dalvik.system.NativeStart.main(Native Method)  

Благодарим за помощь.

ответ

-1

Вы пытаетесь получить доступ к главной теме для сети, что запрещено Android 3.0.

Чтобы решить, что вам нужно использовать AsyncTask

+0

Можете ли вы описать, как это будет решить эту проблему? – Phani