无法使用JSON连接到连接和Android应用程序到sqlserver [英] Failing to connect to connect and android application to sqlserver using JSON
本文介绍了无法使用JSON连接到连接和Android应用程序到sqlserver的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好我是Android的新手,但我的安卓问题连接我的Android应用程序使用JSON..i加载模拟器我在调用认证功能时遇到这些错误..
07-20 20:55:48.871:D / AndroidRuntime(2082):关闭VM
07-20 20:55:48.872:E / AndroidRuntime(2082):致命异常:主
07-20 20:55:48.872:E / AndroidRuntime(2082):进程:com.example.tropical,PID:2082
07-20 20:55:48.872:E / AndroidRuntime(2082):java .lang.NullPointerException:尝试在空对象引用上调用虚拟方法'android.content.res.Resources android.content.Context.getResources()'
07-20 20:55:48.872:E / AndroidRuntime( 2082):在android.widget.Toast。< init>(Toast.java:101)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.widget.Toast.makeText( Toast.java:250)
07-20 20:55:48.872:E / AndroidRuntime(2082):at com.example.tropical.Login $ AsyncLogin.onPreExecute(Login.java:87)
07 -20 20:55:48.872:E / AndroidRuntime(2082):在android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.os.AsyncTask.execute(AsyncTask) .java:535)
07-20 20:55:48.872:E / AndroidRuntime(2082):at com.example.tropical.Login $ 1.onClick(Login.java:49)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.view.View.performClick(View.java:4756)
07-20 20:55:48.872:E / AndroidRuntime(2082):at android .view.View $ PerformClick.run(View.java:19749)
07-20 20:55:48.872:E / AndroidRuntime(2082):at android.os.Handler.handleCallback(Handler.java:739)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.os.Handler.dispatchMessage(Handler.java:95)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.os.Looper.loop(Looper.java:135)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.app.ActivityThread.main(ActivityThread) .java:5221)
07-20 20:55:48.872:E / AndroidRuntime(2082):at java.lang.reflect.Method.invoke(Nati ve方法)
07-20 20:55:48.872:E / AndroidRuntime(2082):at java.lang.reflect.Method.invoke(Method.java:372)
07-20 20:55 :48.872:E / AndroidRuntime(2082):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:899)
07-20 20:55:48.872:E / AndroidRuntime(2082) :at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
07-20 20:55:51.497:D / gralloc_goldfish(2101):未检测到GPU仿真的仿真器。
07-20 20:55:59.339:I / Choreographer(2101):跳过54帧!应用程序可能在其主线程上做了太多工作。
这是我的代码。 。
受保护 void onCreate(Bundle) savedInstanceState){
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUserName =(EditText)findViewById(R.id.txtUserID);
etPassword =(EditText)findViewById(R.id.txtpswd);
btnLogin =(Button)findViewById(R.id.btnlogin);
// etUserName =(EditText)findViewById(R.id。)
btnLogin.setOnClickListener( new View.OnClickListener(){
@ Override
public void onClick(查看v){
// TODO自动生成的方法存根
String username = etUserName.getText()。toString();
String password = etPassword.getText()。toString();
// 执行AsyncLogin类
// 新的AsyncLogin()。执行(用户名,密码);
AsyncLogin xx = new AsyncLogin();
xx.execute(用户名,密码);
}
});
}
protected class AsyncLogin extends AsyncTask< string,> {
String userName = null;
@覆盖
protected 布尔值doInBackground( String ... params){
RestAPI api = new RestAPI();
boolean userAuth = false;
尝试 {
// 在API中调用用户身份验证方法
JSONObject jsonObj = api.UserAuthetication(params [ 0 ],
params [ 1 ]);
// 将JSON对象解析为boolean
JSONParser解析器= new JSONParser();
userAuth = parser.parseUserAuth(jsonObj);
userName = params [ 0 ];
} catch (例外e){
// TODO自动生成的catch块
Log.d( AsyncLogin ,e.getMessage());
}
返回 userAuth;
}
JSONObject java类中的代码
public JSONObject UserAuthetication( String UserName, String Pin) throws 异常{
JSONObject result = null;
JSONObject o = new JSONObject();
JSONObject p = new JSONObject();
o.put( interface, RestAPI);
o.put( method, UserAuthetication);
p.put( UserName,mapObject(UserName));
p.put( Pin,mapObject(Pin));
o.put( parameters,p);
String s = o.toString();
字符串 r = load(s);
result = new JSONObject(r);
返回结果;
}
解决方案
AsyncLogin.onPreExecute(Login.java:87)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
07-20 20:55:48.872:E / AndroidRuntime(2082):at android .os.AsyncTask.execute(AsyncTask.java:535)
07-20 20:55:48.872:E / AndroidRuntime(2082):at com.example.tropical.Login
< blockquote> 1.onClick(Login.java:49)
07-20 20:55:48.872:E / AndroidRuntime(2082):at android.view.View.performClick(View.java:4756)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.view.View
PerformClick.run(View.java:19749)
07- 20 20:55:48.872:E / AndroidRuntime(2082):在android.os.Handler.handleCallback(Handler.java:739)
07-20 20:55:48.872:E / AndroidRuntime(2082):at android.os.Handler.dispatchMessage(Handler.java:95)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.os.Looper.loop(Looper.java:135)
07-20 20:55:48.872:E / AndroidRuntime(2082):在android.app.ActivityThread.main(ActivityThread.java:5221)
07-20 20:55:48.872:E / AndroidRuntime( 2082):at java.lang.reflect.Method.invoke(Native Method)
07-20 20:55:48.872:E / AndroidRuntime(2082):at java.lang.reflect.Method.invoke(Method。 java:372)
07-20 20:55:48.872:E / AndroidRuntime(2082):at com.android.internal.os.ZygoteInit
Hello guys am new to android but am having problem connection my android app to sqlServer using JSON..i load the emulator i get these errors when am invoking the authetication function..
07-20 20:55:48.871: D/AndroidRuntime(2082): Shutting down VM
07-20 20:55:48.872: E/AndroidRuntime(2082): FATAL EXCEPTION: main
07-20 20:55:48.872: E/AndroidRuntime(2082): Process: com.example.tropical, PID: 2082
07-20 20:55:48.872: E/AndroidRuntime(2082): java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources android.content.Context.getResources()' on a null object reference
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.widget.Toast.<init>(Toast.java:101)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.widget.Toast.makeText(Toast.java:250)
07-20 20:55:48.872: E/AndroidRuntime(2082): at com.example.tropical.Login$AsyncLogin.onPreExecute(Login.java:87)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.AsyncTask.execute(AsyncTask.java:535)
07-20 20:55:48.872: E/AndroidRuntime(2082): at com.example.tropical.Login$1.onClick(Login.java:49)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.view.View.performClick(View.java:4756)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.view.View$PerformClick.run(View.java:19749)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Handler.handleCallback(Handler.java:739)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Handler.dispatchMessage(Handler.java:95)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Looper.loop(Looper.java:135)
07-20 20:55:48.872: E/AndroidRuntime(2082): at android.app.ActivityThread.main(ActivityThread.java:5221)
07-20 20:55:48.872: E/AndroidRuntime(2082): at java.lang.reflect.Method.invoke(Native Method)
07-20 20:55:48.872: E/AndroidRuntime(2082): at java.lang.reflect.Method.invoke(Method.java:372)
07-20 20:55:48.872: E/AndroidRuntime(2082): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
07-20 20:55:48.872: E/AndroidRuntime(2082): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
07-20 20:55:51.497: D/gralloc_goldfish(2101): Emulator without GPU emulation detected.
07-20 20:55:59.339: I/Choreographer(2101): Skipped 54 frames! The application may be doing too much work on its main thread.
And this is my code..
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
etUserName = (EditText) findViewById(R.id.txtUserID);
etPassword = (EditText) findViewById(R.id.txtpswd);
btnLogin = (Button) findViewById(R.id.btnlogin);
//etUserName =(EditText)findViewById(R.id.)
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
String username=etUserName.getText().toString();
String password=etPassword.getText().toString();
// Execute the AsyncLogin class
//new AsyncLogin().execute(username,password);
AsyncLogin xx = new AsyncLogin();
xx.execute(username,password);
}
});
}
protected class AsyncLogin extends AsyncTask<string,> {
String userName=null;
@Override
protected Boolean doInBackground(String... params) {
RestAPI api = new RestAPI();
boolean userAuth = false;
try {
// Call the User Authentication Method in API
JSONObject jsonObj = api.UserAuthetication(params[0],
params[1]);
//Parse the JSON Object to boolean
JSONParser parser = new JSONParser();
userAuth = parser.parseUserAuth(jsonObj);
userName=params[0];
} catch (Exception e) {
// TODO Auto-generated catch block
Log.d("AsyncLogin", e.getMessage());
}
return userAuth;
}
code in the JSONObject java class
public JSONObject UserAuthetication(String UserName,String Pin) throws Exception {
JSONObject result = null;
JSONObject o = new JSONObject();
JSONObject p = new JSONObject();
o.put("interface","RestAPI");
o.put("method", "UserAuthetication");
p.put("UserName",mapObject(UserName));
p.put("Pin",mapObject(Pin));
o.put("parameters", p);
String s = o.toString();
String r = load(s);
result = new JSONObject(r);
return result;
}
解决方案
AsyncLogin.onPreExecute(Login.java:87) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:587) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.AsyncTask.execute(AsyncTask.java:535) 07-20 20:55:48.872: E/AndroidRuntime(2082): at com.example.tropical.Login
1.onClick(Login.java:49) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.view.View.performClick(View.java:4756) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.view.View
PerformClick.run(View.java:19749) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Handler.handleCallback(Handler.java:739) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Handler.dispatchMessage(Handler.java:95) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.os.Looper.loop(Looper.java:135) 07-20 20:55:48.872: E/AndroidRuntime(2082): at android.app.ActivityThread.main(ActivityThread.java:5221) 07-20 20:55:48.872: E/AndroidRuntime(2082): at java.lang.reflect.Method.invoke(Native Method) 07-20 20:55:48.872: E/AndroidRuntime(2082): at java.lang.reflect.Method.invoke(Method.java:372) 07-20 20:55:48.872: E/AndroidRuntime(2082): at com.android.internal.os.ZygoteInit
这篇关于无法使用JSON连接到连接和Android应用程序到sqlserver的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文