I am trying to get a value from SQLite to show it in a textView called "tvPackMoney".
String packMoney = Float.toString(daoHelperPacks.sendPackStats().getPackMoney());
tvPackMoney.setText(packMoney);
The method to find the value in the database is this:
public ObjectPack sendPackStats (){
SQLiteDatabase db = this.getWritableDatabase();
String currentPlayer = ClassSharedPreferences.read(ClassSharedPreferences.currentPlayer, "");//read string in shared preference.
String currentPack = ClassSharedPreferences.read(ClassSharedPreferences.currentPack, "");//read string in shared preference.
Cursor datos = db.rawQuery("SELECT MONEY_PACK FROM "+MI_TABLA+" WHERE PLAYER_PACK ='"+currentPlayer+"' AND NAME_PACK ='"+currentPack+"' FROM "+MI_TABLA+")",null);
ObjectPack objectPack = new ObjectPack();
if (datos.moveToFirst()){
objectPack.setPackMoney(datos.getFloat(0));
}
db.close();
return objectPack;
}
I used debugger and I get force close when the following line is executed:
String packMoney = Float.toString(daoHelperPacks.sendPackStats().getPackMoney());
But writing a value directly there is no problem, everything works.
String packMoney = Float.toString((float) 1.11);
Someone can see what I am doing wrong? Thanks in advance.
Here the logcat:
W/actual.pregres: Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->isMainThread()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->isMainThread()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteSession;->hasTransaction()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/content/ContentValues;->isEmpty()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteSession;->hasConnection()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->isInMemoryDatabase()Z (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabaseConfiguration;->isInMemoryDb()Z (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->isReadOnlyLocked()Z (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V (greylist-max-o, linking, denied)
W/actual.pregres: Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->dispose(Z)V (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->onCorruption()V (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->getLabel()Ljava/lang/String; (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->DEBUG_ONEPLUS:Z (blacklist, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mCursorFactory:Landroid/database/sqlite/SQLiteDatabase$CursorFactory; (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V (greylist-max-o, linking, denied)
Accessing hidden field Landroid/database/sqlite/SQLiteDatabase;->mLock:Ljava/lang/Object; (greylist-max-o, linking, denied)
W/actual.pregres: Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->throwIfNotOpenLocked()V (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteSession;->setTransactionSuccessful()V (greylist-max-o, linking, denied)
Accessing hidden method Landroid/content/ContentValues;->isEmpty()Z (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->getThreadDefaultConnectionFlags(Z)I (greylist-max-o, linking, denied)
Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z (greylist-max-o, linking, denied)
I/chatty: uid=10443(com.doctoractual.pregresp) ection primary] identical 1 line
W/actual.pregres: Accessing hidden method Landroid/database/sqlite/SQLiteDatabase;->yieldIfContendedHelper(ZJ)Z (greylist-max-o, linking, denied)
D/ViewRootImpl[ManagerActivity]: windowFocusChanged hasFocus=false inTouchMode=true
W/ActivityThread: handleWindowVisibility: no activity for token android.os.BinderProxy@8b9e305
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.doctoractual.pregresp, PID: 30713
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.doctoractual.pregresp/com.doctoractual.pregresp.SuccessErrorGameActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'com.doctoractual.pregresp.ObjectPack com.doctoractual.pregresp.DAOHelperPacks.sendPackStats()' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3375)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3514)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2110)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7697)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'com.doctoractual.pregresp.ObjectPack com.doctoractual.pregresp.DAOHelperPacks.sendPackStats()' on a null object reference
at com.doctoractual.pregresp.SuccessErrorGameActivity.onCreate(SuccessErrorGameActivity.java:48)
at android.app.Activity.performCreate(Activity.java:7815)
at android.app.Activity.performCreate(Activity.java:7804)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1325)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3350)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3514)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2110)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7697)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
I/Process: Sending signal. PID: 30713 SIG: 9
Disconnected from the target VM, address: 'localhost:56772', transport: 'socket'
Edited: SOLUTION
The query had a mistake
WRONG QUERY
Cursor datos = db.rawQuery("SELECT MONEY_PACK FROM "+MI_TABLA+" WHERE PLAYER_PACK ='"+currentPlayer+"' AND NAME_PACK ='"+currentPack+"' FROM "+MI_TABLA+")",null);
CORRECT QUERY
Cursor datos = db.rawQuery("SELECT MONEY_PACK FROM "+MI_TABLA+" WHERE PLAYER_PACK='"+currentPlayer+"' AND NAME_PACK='"+currentPack+"'",null);