Java Com.example路径有错误

Java Com.example路径有错误,java,android,android-studio,Java,Android,Android Studio,当我在GooglePlay上发布一个apk时,由于“com.example”,我不得不使用一个不同的包名。我尝试了这个,但在测试了一个应用程序后崩溃了。在那之前一切都很好。我可以寄一份舱单 这是我的错误 我的课 Details.java public class Details extends AppCompatActivity { NoteDatabase db; Note note; TextView mDetails; TextView clientDetails; TextView t

当我在GooglePlay上发布一个apk时,由于“com.example”,我不得不使用一个不同的包名。我尝试了这个,但在测试了一个应用程序后崩溃了。在那之前一切都很好。我可以寄一份舱单

这是我的错误

我的课

Details.java

public class Details extends AppCompatActivity {
NoteDatabase db;
Note note;
TextView mDetails;
TextView clientDetails;
TextView timeDetails;
TextView nameDetails;
TextView detailsDetails;
ImageView noteDetails;




private Bitmap getImageFromByte(byte[] zdjecie){
    return BitmapFactory.decodeByteArray(zdjecie, 0, zdjecie.length);
}



@SuppressLint("WrongThread")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_details);
    Toolbar toolbar = findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);



    mDetails = findViewById(R.id.detailsOfNote);
    mDetails.setMovementMethod(new ScrollingMovementMethod());
    clientDetails = findViewById(R.id.clientOfNote);
    timeDetails = findViewById(R.id.timeofNote);
    nameDetails = findViewById(R.id.nameOfNote);
    detailsDetails = findViewById(R.id.detailsOfNote);
    noteDetails = findViewById(R.id.noteImage);





    Intent i = getIntent();
    Long id = i.getLongExtra("ID", 0);

    db = new NoteDatabase(this);
    note = db.getNote(id);
    getSupportActionBar().setTitle(note.getTitle());
    

    mDetails.setText(note.getContent());
    clientDetails.setText(note.getTitle());
    timeDetails.setText(note.getTime());
    nameDetails.setText(note.getName());
    detailsDetails.setText(note.getDetails());
    noteDetails.setImageBitmap(stringToImage(note.getImage()));


    Toast.makeText(this, "Podgląd klienta", Toast.LENGTH_SHORT).show();

    FloatingActionButton fab = findViewById(R.id.fab);
    fab.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            db.deleteNote(note.getID());
            Toast.makeText(getApplicationContext(), "Klient usunięty", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),klienci.class));
        }
    });
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.edit_menu, menu);
    return true;

}

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {
    if(item.getItemId() == R.id.editNote){
        Toast.makeText(this, "Edytowanie notatki", Toast.LENGTH_SHORT).show();
        Intent i = new Intent(this,Edit.class);
        i.putExtra("ID",note.getID());
        startActivity(i);

    }
    return super.onOptionsItemSelected(item);
}

private void goToMain() {
    Intent i = new Intent(this,klienci.class);
    startActivity(i);
}

private Bitmap stringToImage(String imgString){
    byte[] decodedString = Base64.decode(imgString,Base64.DEFAULT);
    Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString,0,decodedString.length);
    return  decodedByte;
}
NoteDatabase.java

public class NoteDatabase extends SQLiteOpenHelper {

private static final int DATABASE_VERSION = 42;
private static final String DATABASE_NAME = "notedbs";
private static final String DATABASE_TABLE = "notestables";

private static final String KEY_ID = "id";
private static final String KEY_TITLE = "title";
private static final String KEY_CONTENT = "content";
private static final String KEY_DATE = "date";
private static final String KEY_TIME = "time";
private static final String KEY_PHONE = "phone";
private static final String KEY_CLIENT = "client";
private static final String KEY_DETAILS = "details";
private static final String KEY_IMAGE = "image";








NoteDatabase(Context context) {
    super(context, DATABASE_NAME,null,DATABASE_VERSION);

}






@Override
public void onCreate(SQLiteDatabase db) {
    String query = "CREATE TABLE "+ DATABASE_TABLE + "("+ KEY_ID+" INT PRIMARY KEY,"+
            KEY_TITLE + " TEXT,"+
            KEY_CONTENT + " TEXT,"+
            KEY_DATE + " TEXT,"+
            KEY_TIME + " TEXT,"+
            KEY_CLIENT + " TEXT,"+
            KEY_DETAILS + " TEXT,"+
            KEY_PHONE + " TEXT,"+
            KEY_IMAGE + " TEXT"+")";
    db.execSQL(query);



}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    if(oldVersion >= newVersion)
        return;
    db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
    onCreate(db);




}

public long addNote(Note note) {
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues c = new ContentValues();
    c.put(KEY_TITLE,note.getTitle());
    c.put(KEY_CONTENT,note.getContent());
    c.put(KEY_PHONE,note.getPhone());
    c.put(KEY_CLIENT,note.getClient());
    c.put(KEY_DETAILS,note.getDetails());
    c.put(KEY_DATE,note.getDate());
    c.put(KEY_TIME,note.getTime());
    c.put(KEY_IMAGE,note.getImage());

    long ID = db.insert(DATABASE_TABLE,null, c);
    Log.d("Inserted", "ID -> " + ID);
    return ID;


}



public Note getNote(long id){
    SQLiteDatabase db = this.getReadableDatabase();
    Cursor cursor = db.query(DATABASE_TABLE,new String[] {KEY_ID,KEY_TITLE,KEY_CONTENT,KEY_PHONE,KEY_CLIENT,KEY_DETAILS,KEY_DATE,KEY_TIME,KEY_IMAGE}, KEY_ID+"=?",

            new String[]{String.valueOf(id)}, null, null,null);
    if (cursor != null)
        cursor.moveToFirst();
    return new Note
            (cursor.getLong(0)
                    ,cursor.getString(1)
                    ,cursor.getString(2)
                    ,cursor.getString(3)
                    ,cursor.getString(4)
                    ,cursor.getString(5)
                    ,cursor.getString(6)
                    ,cursor.getString(7)
                    ,cursor.getString(8));
}



public List<Note> getNotes() {
    SQLiteDatabase db = this.getReadableDatabase();
    List<Note> allNotes = new ArrayList<>();



    String query = "SELECT * FROM " + DATABASE_TABLE + " ORDER BY "+KEY_TITLE+" ASC";
    Cursor cursor = db.rawQuery(query,null);
    if(cursor.moveToFirst()){
        do{
            Note note = new Note();
            note.setID(cursor.getLong(0));
            note.setTitle(cursor.getString(1));
            note.setDetails(cursor.getString(2));
            note.setPhone(cursor.getString(3));
            note.setClient(cursor.getString(4));
            note.setContent(cursor.getString(5));
            note.setDate(cursor.getString(6));
            note.setTime(cursor.getString(7));
            note.setImage(cursor.getString(8));



            allNotes.add(note);


        }while(cursor.moveToNext());

    }

    return allNotes;

}


public int editNote(Note note){
    SQLiteDatabase db = this.getWritableDatabase();
    ContentValues c = new ContentValues();
    Log.d("Edited", "Edited Title: -> "+ note.getTitle() + "\n ID -> "+note.getZdjecie());
    c.put(KEY_TITLE,note.getTitle());
    c.put(KEY_CONTENT,note.getContent());
    c.put(KEY_PHONE,note.getPhone());
    c.put(KEY_CLIENT,note.getClient());
    c.put(KEY_DETAILS,note.getDetails());
    c.put(KEY_DATE,note.getDate());
    c.put(KEY_TIME,note.getTime());
    c.put(KEY_IMAGE,note.getImage());
    return db.update(DATABASE_TABLE,c,KEY_ID +"=?",new String[]{String.valueOf(note.getID())});
}

void deleteNote(long id) {
    SQLiteDatabase db = this.getWritableDatabase();
    db.delete(DATABASE_TABLE, KEY_ID + "=?", new String[]{String.valueOf(id)});
    db.close();
}
公共类NoteDatabase扩展了SQLiteOpenHelper{
私有静态最终int数据库_版本=42;
私有静态最终字符串数据库\u NAME=“notedbs”;
私有静态最终字符串数据库\u TABLE=“notestables”;
私有静态最终字符串密钥\u ID=“ID”;
私有静态最终字符串键\u TITLE=“TITLE”;
私有静态最终字符串键\u CONTENT=“CONTENT”;
私有静态最终字符串键\u DATE=“DATE”;
私有静态最终字符串键\u TIME=“TIME”;
专用静态最终字符串键\u PHONE=“PHONE”;
私有静态最终字符串密钥\u CLIENT=“CLIENT”;
私有静态最终字符串键\u DETAILS=“DETAILS”;
私有静态最终字符串键\u IMAGE=“IMAGE”;
NoteDatabase(上下文){
super(上下文、数据库名称、null、数据库版本);
}
@凌驾
public void onCreate(SQLiteDatabase db){
String query=“CREATE TABLE”+数据库表+”(“+KEY\u ID+”INT主键,”+
键+标题+文本+
按键内容+文本+
按键日期+文本+
按键时间+“文本,”+
密钥_客户端+“文本,”+
键_详细信息+“文本,”+
按键\电话+“文本,”+
键_图像+“文本”+”;
execSQL(查询);
}
@凌驾
public void onUpgrade(SQLiteDatabase db,int-oldVersion,int-newVersion){
如果(旧版本>=新版本)
返回;
db.execSQL(“如果存在删除表”+数据库_表);
onCreate(db);
}
公共长加注释(注释){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues c=新的ContentValues();
c、 put(KEY_TITLE,note.getTitle());
c、 put(KEY_CONTENT,note.getContent());
c、 放置(KEY_PHONE,note.getPhone());
c、 put(KEY_CLIENT,note.getClient());
c、 put(KEY_DETAILS,note.getDetails());
c、 put(KEY_DATE,note.getDate());
c、 put(KEY_TIME,note.getTime());
c、 put(KEY_IMAGE,note.getImage());
long ID=db.insert(DATABASE_TABLE,null,c);
Log.d(“插入”,“ID->”+ID);
返回ID;
}
公共注释getNote(长id){
SQLiteDatabase db=this.getReadableDatabase();
Cursor Cursor=db.query(数据库_表,新字符串[]{KEY_ID,KEY_TITLE,KEY_CONTENT,KEY_PHONE,KEY_CLIENT,KEY_DETAILS,KEY_DATE,KEY_TIME,KEY_IMAGE},KEY_ID+“=?”,
新字符串[]{String.valueOf(id)},null,null,null);
如果(光标!=null)
cursor.moveToFirst();
退回新票据
(cursor.getLong(0)
,cursor.getString(1)
,cursor.getString(2)
,cursor.getString(3)
,cursor.getString(4)
,cursor.getString(5)
,cursor.getString(6)
,cursor.getString(7)
,cursor.getString(8));
}
公共列表getNotes(){
SQLiteDatabase db=this.getReadableDatabase();
List allNotes=new ArrayList();
String query=“SELECT*FROM”+数据库\表格+“ORDER BY”+键\标题+“ASC”;
Cursor Cursor=db.rawQuery(查询,空);
if(cursor.moveToFirst()){
做{
注释=新注释();
注.setID(cursor.getLong(0));
注.setTitle(cursor.getString(1));
note.setDetails(cursor.getString(2));
注.setPhone(cursor.getString(3));
note.setClient(cursor.getString(4));
note.setContent(cursor.getString(5));
注.setDate(cursor.getString(6));
注.setTime(cursor.getString(7));
注.setImage(cursor.getString(8));
所有注释。添加(注释);
}while(cursor.moveToNext());
}
归还所有票据;
}
公共int编辑注释(注释){
SQLiteDatabase db=this.getWritableDatabase();
ContentValues c=新的ContentValues();
Log.d(“已编辑”,“已编辑标题:->”+note.getTitle()+”\n ID->“+note.getZdjecie());
c、 put(KEY_TITLE,note.getTitle());
c、 put(KEY_CONTENT,note.getContent());
c、 放置(KEY_PHONE,note.getPhone());
c、 put(KEY_CLIENT,note.getClient());
c、 put(KEY_DETAILS,note.getDetails());
c、 put(KEY_DATE,note.getDate());
c、 put(KEY_TIME,note.getTime());
c、 put(KEY_IMAGE,note.getImage());
返回db.update(DATABASE_TABLE,c,KEY_ID+“=?”,新字符串[]{String.valueOf(note.getID())});
}
无效删除注释(长id){
SQLiteDatabase db=this.getWritableDatabase();
delete(数据库_表,键_ID+“=?”,新字符串[]{String.valueOf(ID)});
db.close();
}

您试图在数据库中获取0索引。每次添加新便笺时,其ID都将为0。因此,请将数据库键ID更改为自动递增

String query = "CREATE TABLE " + DATABASE_TABLE + "(" + KEY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
                KEY_TITLE + " TEXT," +
                KEY_CONTENT + " TEXT," +
                KEY_DATE + " TEXT," +
                KEY_TIME + " TEXT," +
                KEY_PIES + " TEXT," +
                KEY_RASAPSA + " TEXT," +
                KEY_TEL + " TEXT," +
                KEY_ZDJECIE + " TEXT" + ")";
        db.execSQL(query);
然后在中检查光标不为空

getNote()