Java 无法从我的android应用程序访问mysql数据库
我试图使用下面的代码将值插入mysql数据库。由于某种原因,每次我按下提交按钮,应用程序都会崩溃。我还添加了互联网许可。我听不懂航海日志。任何帮助都将不胜感激 MainActivity.javaJava 无法从我的android应用程序访问mysql数据库,java,android,Java,Android,我试图使用下面的代码将值插入mysql数据库。由于某种原因,每次我按下提交按钮,应用程序都会崩溃。我还添加了互联网许可。我听不懂航海日志。任何帮助都将不胜感激 MainActivity.java package com.example.testthis; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader;
package com.example.testthis;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
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.app.ProgressDialog;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends ActionBarActivity {
EditText et;
Button btn;
String mname;
String query;
String mylink;
Activity context;
ProgressDialog pd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et = (EditText)findViewById(R.id.editText1);
btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
mname = et.getText().toString();
try {
query = URLEncoder.encode(mname,"utf-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
mylink = "http://necrecords.16mb.com/donordetails.php?fn="+query;
HttpAsyncTask hat = new HttpAsyncTask();
hat.execute(mylink);
}
});
}
private class HttpAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {
return httpRequestResponse(urls[0]);
}
protected void onPreExecute(){
super.onPreExecute();
pd = new ProgressDialog(context);
pd.setTitle("Reporting query");
pd.setMessage("Please wait..");
pd.setCancelable(true);
pd.setIndeterminate(true);
pd.show();
}
// onPostExecute displays the results of the AsyncTask.
@Override
protected void onPostExecute(String result) {
if(pd!=null) pd.dismiss();
Toast.makeText(getApplicationContext(),"Successfully Sent!", Toast.LENGTH_LONG).show();
}
}
//For HttpAsync Functions: sending requests and receiving responses
public static String httpRequestResponse(String url){
InputStream inputStream = null;
String result = "";
try {
// create HttpClient
HttpClient httpclient = new DefaultHttpClient();
// make GET request to the given URL
HttpResponse httpResponse = httpclient.execute(new HttpGet(url));
// receive response as inputStream
inputStream = httpResponse.getEntity().getContent();
// convert InputStream to string
if(inputStream != null)
result = convertInputStreamToString(inputStream);
else
result = "InputStream did not work";
} catch (Exception e) {
Log.d("InputStream", e.getLocalizedMessage());
}
return result;
}
private static String convertInputStreamToString(InputStream inputStream) throws IOException{
BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(inputStream));
String line = "";
String result = "";
while((line = bufferedReader.readLine()) != null)
result += line;
inputStream.close();
return result;
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
}
package com.example.testthis;
导入java.io.BufferedReader;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.InputStreamReader;
导入java.io.UnsupportedEncodingException;
导入java.net.urlcoder;
导入org.apache.http.HttpResponse;
导入org.apache.http.client.HttpClient;
导入org.apache.http.client.methods.HttpGet;
导入org.apache.http.impl.client.DefaultHttpClient;
导入android.app.Activity;
导入android.app.ProgressDialog;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.support.v7.app.ActionBarActivity;
导入android.util.Log;
导入android.view.Menu;
导入android.view.MenuItem;
导入android.view.view;
导入android.view.view.OnClickListener;
导入android.widget.Button;
导入android.widget.EditText;
导入android.widget.Toast;
公共类MainActivity扩展了ActionBarActivity{
编辑文本;
按钮btn;
字符串mname;
字符串查询;
字符串mylink;
活动语境;
进展性帕金森病;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
et=(EditText)findViewById(R.id.editText1);
btn=(按钮)findViewById(R.id.button1);
btn.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
//TODO自动生成的方法存根
mname=et.getText().toString();
试一试{
query=URLEncoder.encode(mname,“utf-8”);
}捕获(不支持的编码异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
mylink=”http://necrecords.16mb.com/donordetails.php?fn=“+查询;
HttpAsyncTask hat=新的HttpAsyncTask();
hat.execute(mylink);
}
});
}
私有类HttpAsyncTask扩展了AsyncTask{
@凌驾
受保护的字符串doInBackground(字符串…URL){
返回httpRequestResponse(URL[0]);
}
受保护的void onPreExecute(){
super.onPreExecute();
pd=新进度对话框(上下文);
pd.setTitle(“报告查询”);
pd.setMessage(“请稍候”);
pd.可设置可取消(真);
pd.SetUndeterminate(真);
pd.show();
}
//onPostExecute显示异步任务的结果。
@凌驾
受保护的void onPostExecute(字符串结果){
如果(pd!=null)pd.discouse();
Toast.makeText(getApplicationContext(),“已成功发送!”,Toast.LENGTH_LONG.show();
}
}
//对于HttpAsync功能:发送请求和接收响应
公共静态字符串httpRequestResponse(字符串url){
InputStream InputStream=null;
字符串结果=”;
试一试{
//创建HttpClient
HttpClient HttpClient=新的DefaultHttpClient();
//对给定URL发出GET请求
HttpResponse HttpResponse=httpclient.execute(新的HttpGet(url));
//作为inputStream接收响应
inputStream=httpResponse.getEntity().getContent();
//将InputStream转换为字符串
如果(inputStream!=null)
结果=convertInputStreamToString(inputStream);
其他的
结果=“InputStream未工作”;
}捕获(例外e){
d(“InputStream”,例如getLocalizedMessage());
}
返回结果;
}
私有静态字符串convertInputStreamToString(InputStream InputStream)引发IOException{
BufferedReader BufferedReader=新的BufferedReader(新的InputStreamReader(inputStream));
字符串行=”;
字符串结果=”;
而((line=bufferedReader.readLine())!=null)
结果+=行;
inputStream.close();
返回结果;
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
}
Logcat
04-21 19:34:24.582: I/dalvikvm(5064): Could not find method android.view.ViewGroup.onNestedScrollAccepted, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onNestedScrollAccepted
04-21 19:34:24.582: W/dalvikvm(5064): VFY: unable to resolve virtual method 12215: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
04-21 19:34:24.582: D/dalvikvm(5064): VFY: replacing opcode 0x6f at 0x0000
04-21 19:34:24.582: I/dalvikvm(5064): Could not find method android.view.ViewGroup.onStopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
04-21 19:34:24.582: W/dalvikvm(5064): VFY: unable to resolve virtual method 12221: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
04-21 19:34:24.582: D/dalvikvm(5064): VFY: replacing opcode 0x6f at 0x0000
04-21 19:34:24.582: I/dalvikvm(5064): Could not find method android.support.v7.internal.widget.ActionBarOverlayLayout.stopNestedScroll, referenced from method android.support.v7.internal.widget.ActionBarOverlayLayout.setHideOnContentScrollEnabled
04-21 19:34:24.582: W/dalvikvm(5064): VFY: unable to resolve virtual method 9785: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
04-21 19:34:24.582: D/dalvikvm(5064): VFY: replacing opcode 0x6e at 0x000e
04-21 19:34:24.592: I/dalvikvm(5064): Could not find method android.content.res.TypedArray.getChangingConfigurations, referenced from method android.support.v7.internal.widget.TintTypedArray.getChangingConfigurations
04-21 19:34:24.592: W/dalvikvm(5064): VFY: unable to resolve virtual method 399: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
04-21 19:34:24.592: D/dalvikvm(5064): VFY: replacing opcode 0x6e at 0x0002
04-21 19:34:24.592: I/dalvikvm(5064): Could not find method android.content.res.TypedArray.getType, referenced from method android.support.v7.internal.widget.TintTypedArray.getType
04-21 19:34:24.592: W/dalvikvm(5064): VFY: unable to resolve virtual method 421: Landroid/content/res/TypedArray;.getType (I)I
04-21 19:34:24.592: D/dalvikvm(5064): VFY: replacing opcode 0x6e at 0x0002
04-21 19:34:24.592: I/dalvikvm(5064): Could not find method android.content.res.Resources.getDrawable, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawable
04-21 19:34:24.592: W/dalvikvm(5064): VFY: unable to resolve virtual method 362: Landroid/content/res/Resources;.getDrawable (ILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
04-21 19:34:24.592: D/dalvikvm(5064): VFY: replacing opcode 0x6e at 0x0002
04-21 19:34:24.592: I/dalvikvm(5064): Could not find method android.content.res.Resources.getDrawableForDensity, referenced from method android.support.v7.internal.widget.ResourcesWrapper.getDrawableForDensity
04-21 19:34:24.592: W/dalvikvm(5064): VFY: unable to resolve virtual method 364: Landroid/content/res/Resources;.getDrawableForDensity (IILandroid/content/res/Resources$Theme;)Landroid/graphics/drawable/Drawable;
04-21 19:34:24.592: D/dalvikvm(5064): VFY: replacing opcode 0x6e at 0x0002
04-21 19:34:24.622: D/TextView(5064): Constructor - Got Res id for appearance for textColorPrimaryInverse
04-21 19:34:24.622: W/ResourceType(5064): Skipping entry 0x7f070035 in package table 0 because it is not complex!
04-21 19:34:24.622: D/TextView(5064): Constructor - Got appearance for textColorPrimaryInverse
04-21 19:34:24.622: D/TextView(5064): Constructor -- Got mEditTextBackgroundColor
04-21 19:34:24.702: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 46
04-21 19:34:24.712: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 49
04-21 19:34:24.712: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 50
04-21 19:34:24.712: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 50
04-21 19:34:24.712: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 50
04-21 19:34:24.722: E/IMGSRV(5064): :0: PVRDRMOpen: TP3, ret = 52
04-21 19:34:24.762: D/OpenGLRenderer(5064): Enabling debug mode 0
04-21 19:34:30.742: D/AndroidRuntime(5064): Shutting down VM
04-21 19:34:30.742: W/dalvikvm(5064): threadid=1: thread exiting with uncaught exception (group=0x430ef140)
04-21 19:34:30.742: E/AndroidRuntime(5064): FATAL EXCEPTION: main
04-21 19:34:30.742: E/AndroidRuntime(5064): Process: com.example.testthis, PID: 5064
04-21 19:34:30.742: E/AndroidRuntime(5064): java.lang.NullPointerException
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:143)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.AlertDialog.<init>(AlertDialog.java:98)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.ProgressDialog.<init>(ProgressDialog.java:77)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.example.testthis.MainActivity$HttpAsyncTask.onPreExecute(MainActivity.java:88)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.AsyncTask.execute(AsyncTask.java:535)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.example.testthis.MainActivity$1.onClick(MainActivity.java:67)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.view.View.performClick(View.java:4478)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.view.View$PerformClick.run(View.java:18698)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Handler.handleCallback(Handler.java:733)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Handler.dispatchMessage(Handler.java:95)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Looper.loop(Looper.java:149)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.ActivityThread.main(ActivityThread.java:5257)
04-21 19:34:30.742: E/AndroidRuntime(5064): at java.lang.reflect.Method.invokeNative(Native Method)
04-21 19:34:30.742: E/AndroidRuntime(5064): at java.lang.reflect.Method.invoke(Method.java:515)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
04-21 19:34:30.742: E/AndroidRuntime(5064): at dalvik.system.NativeStart.main(Native Method)
04-21 19:34:24.582:I/dalvikvm(5064):找不到方法android.view.ViewGroup.onnestedScrolAccepted,从方法android.support.v7.internal.widget.ActionBarOverlayLayout.onnestedScrolAccepted引用
04-21 19:34:24.582:W/dalvikvm(5064):VFY:无法解析虚拟方法12215:Landroid/view/ViewGroup;。ONNESTEDSCROLACCEPTED(Landroid/视图/视图;Landroid/视图/视图;I)V
04-21 19:34:24.582:D/dalvikvm(5064):VFY:在0x0000处替换操作码0x6f
04-21 19:34:24.582:I/dalvikvm(5064):找不到方法android.view.ViewGroup.onStopNestedScroll,该方法引用自方法android.support.v7.internal.widget.ActionBarOverlayLayout.onStopNestedScroll
04-21 19:34:24.582:W/dalvikvm(5064):VFY:无法解析虚拟方法12221:Landroid/view/ViewGroup;。onStopNestedScroll(Landroid/view/view;)V
04-21 19:34:24.582:D/dalvikvm(5064):VFY:在0x0000处替换操作码0x6f
04-21 19:34:24.582:I/dalvi
Activity context;
pd = new ProgressDialog(context);
04-21 19:34:30.742: E/AndroidRuntime(5064): java.lang.NullPointerException
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.AlertDialog.resolveDialogTheme(AlertDialog.java:143)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.AlertDialog.<init>(AlertDialog.java:98)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.ProgressDialog.<init>(ProgressDialog.java:77)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.example.testthis.MainActivity$HttpAsyncTask.onPreExecute(MainActivity.java:88)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.AsyncTask.execute(AsyncTask.java:535)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.example.testthis.MainActivity$1.onClick(MainActivity.java:67)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.view.View.performClick(View.java:4478)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.view.View$PerformClick.run(View.java:18698)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Handler.handleCallback(Handler.java:733)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Handler.dispatchMessage(Handler.java:95)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.os.Looper.loop(Looper.java:149)
04-21 19:34:30.742: E/AndroidRuntime(5064): at android.app.ActivityThread.main(ActivityThread.java:5257)
04-21 19:34:30.742: E/AndroidRuntime(5064): at java.lang.reflect.Method.invokeNative(Native Method)
04-21 19:34:30.742: E/AndroidRuntime(5064): at java.lang.reflect.Method.invoke(Method.java:515)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
04-21 19:34:30.742: E/AndroidRuntime(5064): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
04-21 19:34:30.742: E/AndroidRuntime(5064): at dalvik.system.NativeStart.main(Native Method)