Мое приложение работало нормально, прежде чем я реализовал функцию отправки почты. До сих пор в Debug работает нормально, но когда в Release это выдает ошибку. Задача состоит в том, чтобы просто взять информацию из элементов управления и сохранить ее в базе данных MS SQL.
Вызовы фонового процесса:
new CheckRegister(getActivity()).execute();
Код фонового процесса:
public class CheckRegister extends AsyncTask<String,String,String>
{
String z="";
Boolean isSuccess = false;
private ProgressDialog dialog;
public CheckRegister(Activity activity) {
dialog = new ProgressDialog(activity);
}
@Override
protected void onPreExecute()
{
dialog.setMessage("Connecting to Server, please wait.");
dialog.show();
}
@Override
protected void onPostExecute(String r)
{
if (dialog.isShowing()) {
dialog.dismiss();
}
//Toast.makeText(getContext(), r, Toast.LENGTH_SHORT).show();
if(isSuccess)
{
Intent intent = new Intent(getActivity(),MainActivity.class);
intent.putExtra("ImFromReg","Yes");
startActivity(intent);
getActivity().finish();
}
}
@Override
protected String doInBackground(String... params) {
//Establish Connection
Connection con = new GetConnection().connectionclass();
if (con == null) {
z="Error in Connection, Kindly Check your Internet!";
}
else
{
//Check already record exist!
try {
String query = "My Query";
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery(query);
if(rs.next())
{
// Record already exist
z="Provided Credentials Email/Cell already registered!!!";
con.close();
}
else
{
// Start Register Process
CallableStatement cs = con.prepareCall("{? = call SP_YouRegisterInsert(?,?,?,?,?,?,?)}");
cs.registerOutParameter(1, java.sql.Types.INTEGER);
cs.setString(2,getDateTime());
cs.setString(3,vEmail.getText().toString().trim());
cs.setString(4,vCell.getText().toString().trim());
cs.setString(5,vName.getText().toString().trim());
cs.setString(6,vPassword.getText().toString().trim());
cs.setString(7,androidId);
Calendar c = Calendar.getInstance();
String vShortCode = "XYZ";
cs.setString(8,vShortCode);
ResultSet resS = cs.executeQuery();
int str=0;
if (resS.next()) {
str = resS.getInt(1);
}
// Save Settings
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getContext().getApplicationContext());
SharedPreferences.Editor prefEditor = sharedPreferences.edit();
prefEditor.putString("email", vEmail.getText().toString().trim());
prefEditor.apply();
z = "Registration Completed."; // Your ID is:" + Integer.toString(str);
isSuccess=true;
con.close();
}
}
catch (Exception ex) {
z= ex.getMessage();
}
}
return z;
}
}
Ошибка в режиме разблокировки:
E/AndroidRuntime: FATAL EXCEPTION: AsyncTask #2
Process: com.panther.familyloco, PID: 31182
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:309)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:354)
at java.util.concurrent.FutureTask.setException(FutureTask.java:223)
at java.util.concurrent.FutureTask.run(FutureTask.java:242)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.NoClassDefFoundError: net.sourceforge.jtds.jdbc.BlobImpl
at g.a.a.a.J.a(:91)
at g.a.a.a.J.<clinit>(:103)
at g.a.a.a.h.a(:1515)
at g.a.a.a.L.Q(:3285)
at g.a.a.a.L.x(:2352)
at g.a.a.a.L.a(:616)
at g.a.a.a.h.<init>(:356)
at g.a.a.a.l.connect(:188)
at java.sql.DriverManager.getConnection(DriverManager.java:179)
at java.sql.DriverManager.getConnection(DriverManager.java:144)
at c.b.a.D.a(:35)
at c.b.a.da$a.a(:286)
at c.b.a.da$a.doInBackground(:241)
at android.os.AsyncTask$2.call(AsyncTask.java:295)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
Зависимости:
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation files('libs/jtds-1.2.7.jar')
implementation files('libs/mail.jar')
implementation files('libs/activation.jar')
implementation files('libs/additionnal.jar')
implementation files('libs\\ftp4j-1.7.2.jar')
Я пробовал много способов отследить проблему, но не могу понять, в чем проблема. Прикладные комментарии журнала показывают, что приложение падает при создании соединения.