Я пытаюсь создать страницу входа/регистрации в своем Android-приложении с помощью SQLite. Прямо сейчас мое приложение разбивается на странице регистрации (где вы создаете новую учетную запись, используя адрес электронной почты/пароль. Ниже приведены коды для моей страницы регистрации и страницы DatabaseHelper. Обратите внимание, что в моем приложении указано, что ошибка находится в helper.insertContact . (с) линия SignUp, что приводит нас к ошибке в методе insertContact в DatabaseHelperРегистрация Страница Использование приложения SQLite Crash для Android
это бревно кот:
02-16 22:20:47.236 10925-10925/? I/art: Not late-enabling -Xcheck:jni (already on)
02-16 22:20:47.236 10925-10925/? W/art: Unexpected CPU variant for X86 using defaults: x86
02-16 22:20:47.405 10925-10925/com.example.reynaldo.project1 W/System: ClassLoader referenced unknown path: /data/app/com.example.reynaldo.project1-1/lib/x86
02-16 22:20:47.430 10925-10925/com.example.reynaldo.project1 I/InstantRun: Instant Run Runtime started. Android package is com.example.reynaldo.project1, real application class is null.
02-16 22:20:48.833 10925-10925/com.example.reynaldo.project1 W/System: ClassLoader referenced unknown path: /data/app/com.example.reynaldo.project1-1/lib/x86
02-16 22:20:49.066 10925-10925/com.example.reynaldo.project1 W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
02-16 22:20:49.328 10925-10968/com.example.reynaldo.project1 I/OpenGLRenderer: Initialized EGL, version 1.4
02-16 22:20:49.328 10925-10968/com.example.reynaldo.project1 D/OpenGLRenderer: Swap behavior 1
02-16 22:20:49.348 10925-10968/com.example.reynaldo.project1 E/EGL_emulation: tid 10968: eglSurfaceAttrib(1174): error 0x3009 (EGL_BAD_MATCH)
02-16 22:20:49.348 10925-10968/com.example.reynaldo.project1 W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9903de60, error=EGL_BAD_MATCH
Это код SignUp
public class SignUp extends Activity {
static final int REQUEST_TAKE_PHOTO = 1;
String mCurrentPhotoPath;
DatabaseHelper helper = new DatabaseHelper(this);
@Override
protected void onCreate (Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.signup);
}
public void onSignUpClick (View v){
if (v.getId() == R.id.Bsignupbutton){
EditText email = (EditText) findViewById(R.id.TFemail);
EditText pass1 = (EditText) findViewById(R.id.TFpass1);
EditText pass2 = (EditText) findViewById(R.id.TFpass2);
String emailstr= email.getText().toString();
String pass1str = pass1.getText().toString();
String pass2str = pass2.getText().toString();
if (!pass1str.equals(pass2str)){
Toast pass = Toast.makeText(SignUp.this, "Passwords don't match!", Toast.LENGTH_SHORT);
pass.show();
}
else{
Contact c = new Contact();
c.setEmail(emailstr);
c.setPass(pass1str);
helper.insertContact(c);
}
}
}
private File createImageFile() throws IOException {
// Create an image file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String imageFileName = "JPEG_" + timeStamp + "_";
File storageDir = getExternalFilesDir(Environment.DIRECTORY_PICTURES);
File image = File.createTempFile(
imageFileName, /* prefix */
".jpg", /* suffix */
storageDir /* directory */
);
// Save a file: path for use with ACTION_VIEW intents
mCurrentPhotoPath = image.getAbsolutePath();
return image;
}
private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// Ensure that there's a camera activity to handle the intent
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
// Create the File where the photo should go
File photoFile = null;
try {
photoFile = createImageFile();
} catch (IOException ex) {
// Error occurred while creating the File
}
// Continue only if the File was successfully created
if (photoFile != null) {
Uri photoURI = FileProvider.getUriForFile(this,
"com.example.android.fileprovider",
photoFile);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
}
}
}
}
Этот это DatabaseHelper:
public class DatabaseHelper extends SQLiteOpenHelper{
private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "contacts.db";
private static final String TABLE_NAME = "contacts";
private static final String COLUMN_EMAIL = "email";
private static final String COLUMN_PASS = "pass";
private static final String COLUMN_ID = "id";
SQLiteDatabase db;
private static final String TABLE_CREATE = "create table contacts (id integer primary key not null , " +
"email text not null, pass text not null);";
public DatabaseHelper (Context context){
super (context, DATABASE_NAME, null, DATABASE_VERSION);
}
@Override
public void onCreate(SQLiteDatabase db){
db.execSQL(TABLE_CREATE);
this.db = db;
}
public void insertContact(Contact c){
db = this.getWritableDatabase();
ContentValues values = new ContentValues();
String query = "select" + "from contacts";
Cursor cursor = db.rawQuery(query , null);
int count = cursor.getCount();
values.put(COLUMN_ID, count);
values.put(COLUMN_EMAIL, c.getEmail());
values.put(COLUMN_PASS, c.getPass());
db.insert(TABLE_NAME, null, values);
db.close();
}
public String searchPass(String email){
db = this.getReadableDatabase();
String query = "select email, password from " + TABLE_NAME;
Cursor cursor = db.rawQuery(query, null);
String a, b;
b = "not found";
if (cursor.moveToFirst()){
do{
a = cursor.getString(0);
b = cursor.getString(1);
if(a.equals(email)){
b = cursor.getString(1);
break;
}
}
while(cursor.moveToNext());
}
return b;
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
String query = "DROP TABLE IF EXISTS " + TABLE_NAME;
db.execSQL(query);
this.onCreate(db);
}
}
Пожалуйста, покажите фактический logcat, не просто сказать, что ошибка указывает на –