android4.2 选择jtds,android - Jtds Driver Error - Stack Overflow

Hi everyone im using jtds driver for database .

But i have a problem here i couldnt fix it. Problem is :

java.lang.RuntimeException: An error occured while executing doInBackground()

at android.os.AsyncTask$3.done(AsyncTask.java:299)

at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)

at java.util.concurrent.FutureTask.setException(FutureTask.java:219)

at java.util.concurrent.FutureTask.run(FutureTask.java:239)

at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)

at java.lang.Thread.run(Thread.java:841)

Caused by: java.lang.VerifyError: net/sourceforge/jtds/jdbc/TdsCore

at net.sourceforge.jtds.jdbc.JtdsConnection.(JtdsConnection.java:359)

at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:184)

at java.sql.DriverManager.getConnection(DriverManager.java:179)

at java.sql.DriverManager.getConnection(DriverManager.java:144)

at com.verimbt.elmacafeplus.SignupActivity.connectionclass(SignupActivity.java:244)

at com.verimbt.elmacafeplus.SignupActivity$RegisterLogin.doInBackground(SignupActivity.java:184)

at com.verimbt.elmacafeplus.SignupActivity$RegisterLogin.doInBackground(SignupActivity.java:144)

at android.os.AsyncTask$2.call(AsyncTask.java:287)

at java.util.concurrent.FutureTask.run(FutureTask.java:234)

... 4 more

What can i do i check everywhere but i couldnt find any error developing but users report this error from Android 4.3 version... I'm using 5.0.1 version i dont give any error...

SignUpActivity.class

public class SignupActivity extends AppCompatActivity {

// Declaring connection variables

int registerednew=0;

Connection con;

protected String un,pass,db,ip;

//End Declaring connection variables

//Database den çekilen değerlerin lokalleri

String Name;

String Surname;

String Gsm;

int KategoriID;

String QRCodeID;

int OnayID;

String Email;

int UserID;

String Password;

///

ProgressDialog progressDialog;

private static final String TAG = "SignupActivity";

@Bind(R.id.input_name) EditText _nameText;

@Bind(R.id.input_surname) EditText _surnameText;

@Bind(R.id.input_email) EditText _emailText;

@Bind(R.id.input_gsm) EditText _gsmText;

@Bind(R.id.input_password) EditText _passwordText;

@Bind(R.id.btn_signup) Button _signupButton;

@Bind(R.id.link_login) TextView _loginLink;

String saveddbpass;

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_signup);

ButterKnife.bind(this);

EditText cepno=(EditText) findViewById(R.id.input_gsm);

// Declaring Server ip, username, database name and password

ip = ********

db =*******

un = ********

pass = *********;

SharedPreferences prefs = new LoginManager(this, this.getSharedPreferences("Myshared", Context.MODE_PRIVATE));

prefs.edit().putString("Pass",pass);

saveddbpass=prefs.getString("Pass",pass);

// Declaring Server ip, username, database name and password

// Listening to Login Screen link

cepno.setOnEditorActionListener(new TextView.OnEditorActionListener() {

@Override

public boolean onEditorAction(TextView v, int actionId,

KeyEvent event) {

boolean handled = false;

if (actionId == EditorInfo.IME_ACTION_SEND) {

signup();

handled = true;

}

return handled;

}

});

_signupButton.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

signup();

}

});

_loginLink.setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

// Finish the registration screen and return to the Login activity

finish();

}

});

}

public void signup() {

Log.d(TAG, "Signup");

if (!validate()) {

onSignupFailed();

return;

}

_signupButton.setEnabled(false);

String name = _nameText.getText().toString();

String surname = _surnameText.getText().toString();

String email = _emailText.getText().toString();

String password = _passwordText.getText().toString();

String gsm = _gsmText.getText().toString();

// Closing registration screen

// Switching to Login Screen/closing activity_register screen

new RegisterLogin().execute(email,password,name,gsm,surname);

new android.os.Handler().postDelayed(

new Runnable() {

public void run() {

// On complete call either onSignupSuccess or onSignupFailed

// depending on success

onSignupSuccess();

// onSignupFailed();

}

}, 1000);

}

public class RegisterLogin extends AsyncTask

{

String z ;

Boolean isSuccess = false;

@Override

protected void onPostExecute(String z)

{

Toast.makeText(SignupActivity.this, z, Toast.LENGTH_SHORT).show();

if(isSuccess)

{

progressDialog = new ProgressDialog(SignupActivity.this,

R.style.AppTheme_Dark_Dialog);

progressDialog.setIndeterminate(true);

progressDialog.setMessage("Creating Account...");

progressDialog.show();

progressDialog.dismiss();

Toast.makeText(SignupActivity.this , "Kayıt İşlemi Tamamlandı,Şimdi giriş yapabilirsiniz." , Toast.LENGTH_SHORT).show();

finish();

}

}

@Override

protected String doInBackground(String... args)

{

String Email2 =args[0];

String pass2=args[1];

String Name2 = args[2];

String Gsm2 = args[3];

String Surname2=args[4];

String QrCode;

if(Email2.trim().equals("")|| pass2.trim().equals(""))

z = "Please enter Username and Password";

else

{

try

{

con = connectionclass(un, saveddbpass, db, ip); // Connect to database

if (con == null)

{

z = "Check Your Internet Access!";

}

else

{

Calendar c = Calendar.getInstance();

SimpleDateFormat df = new SimpleDateFormat("yyyy");

SimpleDateFormat df2 = new SimpleDateFormat("ddmm");

SimpleDateFormat df3 = new SimpleDateFormat("dd/MM/yyyy");

int hour = c.get(Calendar.HOUR_OF_DAY);

int minute = c.get(Calendar.MINUTE);

int second = c.get(Calendar.SECOND);

String formattedDate = df.format(c.getTime());

String formattedDate2 = df2.format(c.getTime());

String KayitTarihi = df3.format(c.getTime())+" "+hour+":"+minute+":"+second;

QrCode=formattedDate+Gsm2+formattedDate2;

Log.i("qrcode",QrCode);

// Change below query according to your own database.

String query = "insert into elmacustomers(KayitTarihi,QRCodeID,Gsm,Name,Surname,Email,Password,OnayID) VALUES('"+KayitTarihi+"',"+"'"+ QrCode.toString()+"',"+"'"+Gsm2.toString()+"',"+"'"+Name2.toString()+"','"+Surname2.toString()+"','"+Email2.toString()+"','"+pass2.toString()+"',"+"0) ";

Statement stmt = con.createStatement();

try {

stmt.executeUpdate(query);

} catch (SQLException e) {

z=Email2+" E-mail adresi sistemde kayitlidir";

onPause();

}

z="Kayıt İşlemi Tamamlandı,Şimdi giriş yapabilirsiniz.";

Intent i = new Intent(getApplicationContext(), LoginActivity.class);

i.putExtra("Email", Email);

i.putExtra("Pass", pass2);

i.putExtra("flag",0);

setResult(Activity.RESULT_OK,i);

finish();

}

}

catch (Exception ex)

{

isSuccess = false;

}

}

return z;

}

}

@SuppressLint("NewApi")

public Connection connectionclass(String user, String password, String database, String server)

{

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();

StrictMode.setThreadPolicy(policy);

Connection connection = null;

String ConnectionURL = null;

try

{

Class.forName("net.sourceforge.jtds.jdbc.Driver");

ConnectionURL = "jdbc:jtds:sqlserver://" + server +"/"+ database + ";user=" + user+ ";password=" + password + ";";

connection = DriverManager.getConnection(ConnectionURL);

}

catch (SQLException se)

{

Log.e("error here 1 : ", se.getMessage());

}

catch (ClassNotFoundException e)

{

Log.e("error here 2 : ", e.getMessage());

}

catch (Exception e)

{

Log.e("error here 3 : ", e.getMessage());

}

return connection;

}

public void onSignupSuccess() {

_signupButton.setEnabled(true);

setResult(RESULT_OK, null);

finish();

}

public void onSignupFailed() {

Toast.makeText(getBaseContext(), "Login failed", Toast.LENGTH_LONG).show();

_signupButton.setEnabled(true);

}

public boolean validate() {

boolean valid = true;

String name = _nameText.getText().toString();

String email = _emailText.getText().toString();

String password = _passwordText.getText().toString();

if (name.isEmpty() || name.length() < 3) {

_nameText.setError("at least 3 characters");

valid = false;

} else {

_nameText.setError(null);

}

if (email.isEmpty() || !android.util.Patterns.EMAIL_ADDRESS.matcher(email).matches()) {

_emailText.setError("enter a valid email address");

valid = false;

} else {

_emailText.setError(null);

}

if (password.isEmpty() || password.length() < 4 || password.length() > 10) {

_passwordText.setError("between 4 and 10 alphanumeric characters");

valid = false;

} else {

_passwordText.setError(null);

}

return valid;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值