问题描述
你好我follwing这个教程在这里<一个href=\"http://fahmirahman.word$p$pss.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json\" rel=\"nofollow\">http://fahmirahman.word$p$pss.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json而无法得到想要的结果不如预期,这是我在我的网站
那么这就是我试图把我的Andorid main.java文件code
包com.connectsql.test;进口java.io.BufferedReader中;
进口的java.io.InputStream;
进口java.io.InputStreamReader中;
进口的java.util.List;进口org.apache.http.HttpEntity;
进口org.apache.http.Htt presponse;
进口org.apache.http.NameValuePair;
进口org.apache.http.ParseException;
进口org.apache.http.client.HttpClient;
进口org.apache.http.client.entity.UrlEn codedFormEntity;
进口org.apache.http.client.methods.HttpPost;
进口org.apache.http.impl.client.DefaultHttpClient;
进口org.json.JSONArray;
进口org.json.JSONException;
进口org.json.JSONObject;进口android.app.ListActivity;
进口android.os.Bundle;
进口android.util.Log;
进口android.widget.Toast;公共类ConnectsqlActivity扩展ListActivity {
/ **当第一次创建活动调用。 * /
@覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.main); 字符串结果= NULL;
InputStream为= NULL;
StringBuilder的SB = NULL; // HTTP POST
尝试{
HttpClient的HttpClient的=新DefaultHttpClient();
HttpPost httppost =新HttpPost(http://techiequickie.com/food.php);
名单,LT ;?扩展的NameValuePair&GT; namevaluepairs中= NULL;
httppost.setEntity(新UrlEn codedFormEntity(namevaluepairs中));
HTT presponse响应= httpclient.execute(httppost);
HttpEntity实体= response.getEntity();
是= entity.getContent();
}赶上(例外五){
Log.e(log_tag,在HTTP连接错误+ e.toString());
}
//响应转换为字符串
尝试{
读者的BufferedReader =新的BufferedReader(新的InputStreamReader(是,ISO-8859-1),8);
SB =新的StringBuilder();
sb.append(reader.readLine()+\\ n);
串行=0; 而((行= reader.readLine())!= NULL){
sb.append(行+\\ n);
} is.close();
结果= sb.toString(); }赶上(例外五){
Log.e(log_tag,错误转换结果+ e.toString());
} //配对数据
INT fd_id;
串fd_name;
尝试{
JSONArray jArray =新JSONArray(结果);
JSONObject的json_data = NULL; 的for(int i = 0; I&LT; jArray.length();我++){
json_data = jArray.getJSONObject(ⅰ);
fd_id = json_data.getInt(FOOD_ID);
fd_name = json_data.getString(FOOD_NAME);
} }赶上(JSONException E1){
Toast.makeText(getBaseContext(),无食物中,Toast.LENGTH_LONG).show();
}赶上(ParseException的E1){
e1.printStackTrace();
} }
}
我得到的错误是应用程序意外关闭,所以我DONOT明白我必须做我的main.xml中默认是在我没加任何控制的方式出现,以得到这个工作TKS。
下面是我的main.xml code
&LT;?XML版本=1.0编码=UTF-8&GT?;
&LT; LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直&GT; &LT;的TextView
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=@字符串/你好/&GT; &LT;的LinearLayout
机器人:ID =@ + ID / linearLayout1
机器人:layout_width =match_parent
机器人:layout_height =WRAP_CONTENT
机器人:layout_weight =0.82
机器人:方向=垂直&GT;
&LT; / LinearLayout中&GT;&LT; / LinearLayout中&GT;
TKS
logcat的误差
01-30 16:07:12.155:D / AndroidRuntime(787):关闭VM
01-30 16:07:12.155:W / dalvikvm(787):主题ID = 1:螺纹未捕获的异常(组= 0x40015560)退出
01-30 16:07:12.175:E / AndroidRuntime(787):致命异常:主要
01-30 16:07:12.175:E / AndroidRuntime(787):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.connectsql.test / com.connectsql.test.ConnectsqlActivity}了java.lang.RuntimeException:您的内容必须有一个ListView的id属性是'android.R.id.list
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.os.Handler.dispatchMessage(Handler.java:99)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.os.Looper.loop(Looper.java:123)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread.main(ActivityThread.java:3683)
01-30 16:07:12.175:E / AndroidRuntime(787):在java.lang.reflect.Method.invokeNative(本机方法)
01-30 16:07:12.175:E / AndroidRuntime(787):在java.lang.reflect.Method.invoke(Method.java:507)
01-30 16:07:12.175:E / AndroidRuntime(787):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
01-30 16:07:12.175:E / AndroidRuntime(787):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-30 16:07:12.175:E / AndroidRuntime(787):在dalvik.system.NativeStart.main(本机方法)
01-30 16:07:12.175:E / AndroidRuntime(787):了java.lang.RuntimeException::你的内容必须有一个ListView的id属性是'android.R.id.list产生的原因
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ListActivity.onContentChanged(ListActivity.java:243)
01-30 16:07:12.175:E / AndroidRuntime(787):在com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:210)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.Activity.setContentView(Activity.java:1657)
01-30 16:07:12.175:E / AndroidRuntime(787):在com.connectsql.test.ConnectsqlActivity.onCreate(ConnectsqlActivity.java:30)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-30 16:07:12.175:E / AndroidRuntime(787):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-30 16:07:12.175:E / AndroidRuntime(787):11 ...更多
@Sergey logcat的错误请留意,我修改的main.xml code低于
01-31 00:39:20.625:E / log_tag(424):错误HTTP connectionjava.net.UnknownHostException:techiequickie.com
01-31 00:39:20.625:E / log_tag(424):错误转换结果显示java.lang.NullPointerException
01-31 00:39:20.625:D / AndroidRuntime(424):关闭VM
01-31 00:39:20.625:W / dalvikvm(424):主题ID = 1:螺纹未捕获的异常(组= 0x40015560)退出
01-31 00:39:20.665:E / AndroidRuntime(424):致命异常:主要
01-31 00:39:20.665:E / AndroidRuntime(424):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.mysql / com.mysql.MysqlconActivity}:显示java.lang.NullPointerException
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.os.Handler.dispatchMessage(Handler.java:99)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.os.Looper.loop(Looper.java:123)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread.main(ActivityThread.java:3683)
01-31 00:39:20.665:E / AndroidRuntime(424):在java.lang.reflect.Method.invokeNative(本机方法)
01-31 00:39:20.665:E / AndroidRuntime(424):在java.lang.reflect.Method.invoke(Method.java:507)
01-31 00:39:20.665:E / AndroidRuntime(424):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
01-31 00:39:20.665:E / AndroidRuntime(424):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-31 00:39:20.665:E / AndroidRuntime(424):在dalvik.system.NativeStart.main(本机方法)
01-31 00:39:20.665:E / AndroidRuntime(424):致:显示java.lang.NullPointerException
01-31 00:39:20.665:E / AndroidRuntime(424):在com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
01-31 00:39:20.665:E / AndroidRuntime(424):在com.mysql.MysqlconActivity.onCreate(MysqlconActivity.java:66)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-31 00:39:20.665:E / AndroidRuntime(424):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-31 00:39:20.665:E / AndroidRuntime(424):11 ...更多
01-31 00:39:28.775:I /流程(424):发送信号。 PID:424 SIG:9
01-31 00:43:37.995:E / log_tag(473):在HTTP connectionjava.net.UnknownHostException错误:techiequickie.com
01-31 00:43:37.995:E / log_tag(473):错误转换结果显示java.lang.NullPointerException
01-31 00:43:37.995:D / AndroidRuntime(473):关闭VM
01-31 00:43:37.995:W / dalvikvm(473):主题ID = 1:螺纹未捕获的异常(组= 0x40015560)退出
01-31 00:43:38.036:E / AndroidRuntime(473):致命异常:主要
01-31 00:43:38.036:E / AndroidRuntime(473):了java.lang.RuntimeException:无法启动活动ComponentInfo {com.mysql / com.mysql.MysqlconActivity}:显示java.lang.NullPointerException
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread.access $ 1500(ActivityThread.java:117)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:931)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.os.Handler.dispatchMessage(Handler.java:99)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.os.Looper.loop(Looper.java:123)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread.main(ActivityThread.java:3683)
01-31 00:43:38.036:E / AndroidRuntime(473):在java.lang.reflect.Method.invokeNative(本机方法)
01-31 00:43:38.036:E / AndroidRuntime(473):在java.lang.reflect.Method.invoke(Method.java:507)
01-31 00:43:38.036:E / AndroidRuntime(473):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:839)
01-31 00:43:38.036:E / AndroidRuntime(473):在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-31 00:43:38.036:E / AndroidRuntime(473):在dalvik.system.NativeStart.main(本机方法)
01-31 00:43:38.036:E / AndroidRuntime(473):致:显示java.lang.NullPointerException
01-31 00:43:38.036:E / AndroidRuntime(473):在com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
01-31 00:43:38.036:E / AndroidRuntime(473):在com.mysql.MysqlconActivity.onCreate(MysqlconActivity.java:61)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-31 00:43:38.036:E / AndroidRuntime(473):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-31 00:43:38.036:E / AndroidRuntime(473):11 ...更多
修改main.xml中,我附加了下面的截图,因为我加入了列表视图,并从code中的最后一行,你指的是test_text现场说,tv.setText(fd_id ++ fd_name);但是,试图理解这个line.tks所有的努力。
&LT;?XML版本=1.0编码=UTF-8&GT?;
&LT; LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直&GT;
&LT;的TextView
机器人:ID =@ + ID / test_text
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=你好/&GT; &LT; ListView控件
机器人:ID =@机器人:ID /列表
机器人:layout_width =match_parent
机器人:layout_height =match_parent&GT;
&LT; /&的ListView GT;&LT; / LinearLayout中&GT;
你,因为你正在扩展ListActivity必须添加以下到您的布局
&LT; ListView的机器人:ID =@机器人:ID /列表
机器人:layout_width =match_parent
机器人:layout_height =match_parent
/&GT;
否则没关系我会在此示例中使用HTTPGET虽然。
编辑:
布局:
&LT;?XML版本=1.0编码=UTF-8&GT?;
&LT; LinearLayout中的xmlns:机器人=http://schemas.android.com/apk/res/android
机器人:layout_width =FILL_PARENT
机器人:layout_height =FILL_PARENT
机器人:方向=垂直&GT; &LT;的TextView
机器人:ID =@ + ID / test_text
机器人:layout_width =FILL_PARENT
机器人:layout_height =WRAP_CONTENT
机器人:文字=你好/&GT; &LT; ListView的机器人:ID =@机器人:ID /列表
机器人:layout_width =match_parent
机器人:layout_height =match_parent
/&GT;&LT; / LinearLayout中&GT;
code:
进口org.apache.http *。
进口java.io.BufferedReader中;
进口的java.io.InputStream;
进口java.io.InputStreamReader中;
进口org.apache.http.client.methods.HttpGet;进口android.widget.TextView;
进口org.apache.http.impl.client.DefaultHttpClient;
进口org.json.JSONArray;
进口org.json.JSONException;
进口org.json.JSONObject;进口android.app.ListActivity;
进口android.os.Bundle;
进口android.util.Log;
进口android.widget.Toast;公共类ConnectsqlActivity扩展ListActivity { @覆盖
公共无效的onCreate(捆绑savedInstanceState){
super.onCreate(savedInstanceState);
字符串结果= NULL;
InputStream为= NULL;
StringBuilder的SB = NULL; 尝试{
DefaultHttpClient的HttpClient =新DefaultHttpClient();
// setProxy(HttpClient的,yourproxyorIP,9090,用户名,密码); //使用代理服务器的端口 HTTPGET httppost =新HTTPGET(http://techiequickie.com/food.php);
HTT presponse响应= httpclient.execute(httppost);
HttpEntity实体= response.getEntity();
是= entity.getContent();
}赶上(例外五){
Log.e(log_tag,在HTTP连接错误+ e.toString());
}
尝试{
读者的BufferedReader =新的BufferedReader(新的InputStreamReader(是));
SB =新的StringBuilder();
sb.append(reader.readLine()+\\ n);
串行=0; 而((行= reader.readLine())!= NULL){
sb.append(行+\\ n);
} is.close();
结果= sb.toString(); }赶上(例外五){
Log.e(log_tag,错误转换结果+ e.toString());
}
的System.out.println(结果);
//配对数据
INT fd_id = 0;
字符串fd_name = NULL;
尝试{
JSONArray jArray =新JSONArray(结果);
JSONObject的json_data = NULL; 的for(int i = 0; I&LT; jArray.length();我++){
json_data = jArray.getJSONObject(ⅰ);
fd_id = json_data.getInt(FOOD_ID);
fd_name = json_data.getString(FOOD_NAME);
} }赶上(JSONException E1){
Toast.makeText(getBaseContext(),无食物中,Toast.LENGTH_LONG).show();
}赶上(ParseException的E1){
e1.printStackTrace();
}
的setContentView(R.layout.test);
TextView的电视=(的TextView)findViewById(R.id.test_text);
tv.setText(fd_id ++ fd_name); }私有静态无效setProxy(DefaultHttpClient HttpClient的,
串代理,INT端口,用户名字符串,字符串密码)
{
的HttpParams PARAMS = httpClient.getParams();
params.setParameter(ConnRoutePNames.DEFAULT_PROXY,
新HttpHost(代理端口));
如果(用户名= NULL&放大器;!&放大器;密码= NULL){
httpClient.getCredentialsProvider()。setCredentials方法(
新AuthScope(代理端口)
新UsernamePasswordCredentials(用户名,密码)
);
}
httpClient.setParams(PARAMS);
}
}
Hi i am follwing this tutorial over here http://fahmirahman.wordpress.com/2011/04/21/connection-between-php-server-and-android-client-using-http-and-json and unable to get the desired results as expected, this is the food.php file that i have at my website techiequickie.com/food.php
then this is the code that i am trying to put in my andorid main.java file
package com.connectsql.test;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.List;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.ParseException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class ConnectsqlActivity extends ListActivity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String result = null;
InputStream is = null;
StringBuilder sb=null;
//http post
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://techiequickie.com/food.php");
List<? extends NameValuePair> nameValuePairs = null;
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
//convert response to string
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
//paring data
int fd_id;
String fd_name;
try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id=json_data.getInt("FOOD_ID");
fd_name=json_data.getString("FOOD_NAME");
}
}catch(JSONException e1){
Toast.makeText(getBaseContext(), "No Food Found", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}
}
}
the error i am getting is application closed unexpectedly, so i donot understand what i have to do to get this work tks by the way my main.xml is default as in i did not add any controls there.below is my main.xml code
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello" />
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_weight="0.82"
android:orientation="vertical" >
</LinearLayout>
</LinearLayout>
tks
LOGCAT error
01-30 16:07:12.155: D/AndroidRuntime(787): Shutting down VM
01-30 16:07:12.155: W/dalvikvm(787): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-30 16:07:12.175: E/AndroidRuntime(787): FATAL EXCEPTION: main
01-30 16:07:12.175: E/AndroidRuntime(787): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.connectsql.test/com.connectsql.test.ConnectsqlActivity}: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.os.Handler.dispatchMessage(Handler.java:99)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.os.Looper.loop(Looper.java:123)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread.main(ActivityThread.java:3683)
01-30 16:07:12.175: E/AndroidRuntime(787): at java.lang.reflect.Method.invokeNative(Native Method)
01-30 16:07:12.175: E/AndroidRuntime(787): at java.lang.reflect.Method.invoke(Method.java:507)
01-30 16:07:12.175: E/AndroidRuntime(787): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-30 16:07:12.175: E/AndroidRuntime(787): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-30 16:07:12.175: E/AndroidRuntime(787): at dalvik.system.NativeStart.main(Native Method)
01-30 16:07:12.175: E/AndroidRuntime(787): Caused by: java.lang.RuntimeException: Your content must have a ListView whose id attribute is 'android.R.id.list'
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ListActivity.onContentChanged(ListActivity.java:243)
01-30 16:07:12.175: E/AndroidRuntime(787): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:210)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.Activity.setContentView(Activity.java:1657)
01-30 16:07:12.175: E/AndroidRuntime(787): at com.connectsql.test.ConnectsqlActivity.onCreate(ConnectsqlActivity.java:30)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-30 16:07:12.175: E/AndroidRuntime(787): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-30 16:07:12.175: E/AndroidRuntime(787): ... 11 more
@Sergey logcat error please take note that my modified main.xml code is below
01-31 00:39:20.625: E/log_tag(424): Error in http connectionjava.net.UnknownHostException: techiequickie.com
01-31 00:39:20.625: E/log_tag(424): Error converting result java.lang.NullPointerException
01-31 00:39:20.625: D/AndroidRuntime(424): Shutting down VM
01-31 00:39:20.625: W/dalvikvm(424): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-31 00:39:20.665: E/AndroidRuntime(424): FATAL EXCEPTION: main
01-31 00:39:20.665: E/AndroidRuntime(424): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mysql/com.mysql.MysqlconActivity}: java.lang.NullPointerException
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.os.Looper.loop(Looper.java:123)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread.main(ActivityThread.java:3683)
01-31 00:39:20.665: E/AndroidRuntime(424): at java.lang.reflect.Method.invokeNative(Native Method)
01-31 00:39:20.665: E/AndroidRuntime(424): at java.lang.reflect.Method.invoke(Method.java:507)
01-31 00:39:20.665: E/AndroidRuntime(424): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-31 00:39:20.665: E/AndroidRuntime(424): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-31 00:39:20.665: E/AndroidRuntime(424): at dalvik.system.NativeStart.main(Native Method)
01-31 00:39:20.665: E/AndroidRuntime(424): Caused by: java.lang.NullPointerException
01-31 00:39:20.665: E/AndroidRuntime(424): at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
01-31 00:39:20.665: E/AndroidRuntime(424): at com.mysql.MysqlconActivity.onCreate(MysqlconActivity.java:66)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-31 00:39:20.665: E/AndroidRuntime(424): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-31 00:39:20.665: E/AndroidRuntime(424): ... 11 more
01-31 00:39:28.775: I/Process(424): Sending signal. PID: 424 SIG: 9
01-31 00:43:37.995: E/log_tag(473): Error in http connectionjava.net.UnknownHostException: techiequickie.com
01-31 00:43:37.995: E/log_tag(473): Error converting result java.lang.NullPointerException
01-31 00:43:37.995: D/AndroidRuntime(473): Shutting down VM
01-31 00:43:37.995: W/dalvikvm(473): threadid=1: thread exiting with uncaught exception (group=0x40015560)
01-31 00:43:38.036: E/AndroidRuntime(473): FATAL EXCEPTION: main
01-31 00:43:38.036: E/AndroidRuntime(473): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mysql/com.mysql.MysqlconActivity}: java.lang.NullPointerException
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.os.Handler.dispatchMessage(Handler.java:99)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.os.Looper.loop(Looper.java:123)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread.main(ActivityThread.java:3683)
01-31 00:43:38.036: E/AndroidRuntime(473): at java.lang.reflect.Method.invokeNative(Native Method)
01-31 00:43:38.036: E/AndroidRuntime(473): at java.lang.reflect.Method.invoke(Method.java:507)
01-31 00:43:38.036: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-31 00:43:38.036: E/AndroidRuntime(473): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-31 00:43:38.036: E/AndroidRuntime(473): at dalvik.system.NativeStart.main(Native Method)
01-31 00:43:38.036: E/AndroidRuntime(473): Caused by: java.lang.NullPointerException
01-31 00:43:38.036: E/AndroidRuntime(473): at com.android.internal.os.LoggingPrintStream.println(LoggingPrintStream.java:298)
01-31 00:43:38.036: E/AndroidRuntime(473): at com.mysql.MysqlconActivity.onCreate(MysqlconActivity.java:61)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-31 00:43:38.036: E/AndroidRuntime(473): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-31 00:43:38.036: E/AndroidRuntime(473): ... 11 more
Modified main.xml, i attached a screenshot below because i added the listview and from your code the last line you refer to the test_text field saying that "tv.setText(fd_id+" "+fd_name);" but trying to understand this line.tks for all the effort.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/test_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" />
<ListView
android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent" >
</ListView>
</LinearLayout>
you must add the following to your layout because you are extending ListActivity
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
otherwise it's okay I'd use HttpGet though in this sample.
EDIT:layout:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/test_text"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="hello" />
<ListView android:id="@android:id/list"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
code:
import org.apache.http.*;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import org.apache.http.client.methods.HttpGet;
import android.widget.TextView;
import org.apache.http.impl.client.DefaultHttpClient;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.ListActivity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Toast;
public class ConnectsqlActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
String result = null;
InputStream is = null;
StringBuilder sb=null;
try{
DefaultHttpClient httpclient = new DefaultHttpClient();
// setProxy(httpclient,"yourproxyorIP",9090,"username","password"); //use your proxy's port
HttpGet httppost = new HttpGet("http://techiequickie.com/food.php");
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){
Log.e("log_tag", "Error in http connection"+e.toString());
}
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
sb = new StringBuilder();
sb.append(reader.readLine() + "\n");
String line="0";
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
}catch(Exception e){
Log.e("log_tag", "Error converting result "+e.toString());
}
System.out.println(result);
//paring data
int fd_id=0;
String fd_name=null;
try{
JSONArray jArray = new JSONArray(result);
JSONObject json_data=null;
for(int i=0;i<jArray.length();i++){
json_data = jArray.getJSONObject(i);
fd_id=json_data.getInt("FOOD_ID");
fd_name=json_data.getString("FOOD_NAME");
}
}catch(JSONException e1){
Toast.makeText(getBaseContext(), "No Food Found", Toast.LENGTH_LONG).show();
}catch (ParseException e1){
e1.printStackTrace();
}
setContentView(R.layout.test);
TextView tv = (TextView)findViewById(R.id.test_text);
tv.setText(fd_id+" "+fd_name);
}
private static void setProxy (DefaultHttpClient httpClient,
String proxy,int port,String username,String password)
{
HttpParams params = httpClient.getParams();
params.setParameter(ConnRoutePNames.DEFAULT_PROXY,
new HttpHost( proxy,port));
if(username!=null&&password!=null){
httpClient.getCredentialsProvider().setCredentials(
new AuthScope(proxy, port),
new UsernamePasswordCredentials(username, password)
);
}
httpClient.setParams(params);
}
}
这篇关于Android版MYSQL直通PHP的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!