无法使用JSON连接到连接和Android应用程序到sqlserver [英] Failing to connect to connect and android application to sqlserver using JSON

查看:90
本文介绍了无法使用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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆