Приложение Android закрывается после добавления кодов SQL Lite - PullRequest
0 голосов
/ 01 ноября 2011

У меня проблема с SQL Lite для моей модели телефона LG Optimus One P500.Версия моего телефона для Android обновлена ​​с FroYo до Gingerbread, и обновление отлично работает на мне.Мое приложение также отлично работает на других моделях телефонов.

Приложение сначала работает, а также показывает мою главную страницу, но когда я запускаю игру, появляется проблема, а затем приложение принудительно закрывает мое приложение.

После создания страницы результатов начинается создание базы данных (инициализация).покажет, поэтому я думаю, что проблема не должна существовать после того, как я запустил игру, но после того, как эта проблема началась, только когда я добавил свои коды базы данных.

Для лучшего понимания моя деятельность выглядит так:

  1. Получить имя при запуске, а затем сохранить имя в строковой переменной после нажатия кнопки запуска.(В этой части моя проблема существует)
  2. У меня есть таймер и текст оценки во втором макете, который будет получен позже после завершения игры.
  3. База данных будет создана (если еще не существует), и эти 3 данные будут сохранены в базе данных.

Вот мой код базы данных (я только что получил его из учебника из Интернета):

public class DataHelper {

    private static final String DATABASE_NAME = "scores.db";
       private static final int DATABASE_VERSION = 1;
       private static final String TABLE_NAME = "tblScores";

       private Context context;
       private SQLiteDatabase db;

       private SQLiteStatement insertStmt;
       private static final String INSERT = "insert into "
          + TABLE_NAME + "(name,score,time) values (?,?,?)";

       public DataHelper(Context context) {
              this.context = context;
              OpenHelper openHelper = new OpenHelper(this.context);
              this.db = openHelper.getWritableDatabase();
              this.insertStmt = this.db.compileStatement(INSERT);
           }

       public long insert(String name, String score, String time) {
          this.insertStmt.bindString(1, name);
          this.insertStmt.bindString(2, score); 
          this.insertStmt.bindString(3, time);
          return this.insertStmt.executeInsert();
       }

       public void deleteAll() {
          this.db.delete(TABLE_NAME, null, null);
       }

       public List<String> selectAll() {
              List<String> list = new ArrayList<String>();
              Cursor cursor = this.db.query(TABLE_NAME, new String[] { "name","score","time" },
                /*"name in ('A','B')"*/ null, null, /*"name"*/null, null, "score, time desc");
              if (cursor.moveToFirst()) {
                 do {
                    list.add(cursor.getString(0)+" "+cursor.getString(1)+" "+cursor.getString(2));
                    //list.add(cursor.getString(1));
                 } while (cursor.moveToNext());
              }
              if (cursor != null && !cursor.isClosed()) {
                 cursor.close();
              }
              return list;
           }

       private static class OpenHelper extends SQLiteOpenHelper {

          OpenHelper(Context context) {
             super(context, DATABASE_NAME, null, DATABASE_VERSION);
          }

          @Override
          public void onCreate(SQLiteDatabase db) {
             db.execSQL("CREATE TABLE " + TABLE_NAME + "(id INTEGER PRIMARY KEY, name TEXT, score TEXT, time TEXT)");
          }

          @Override
          public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
             Log.w("Example", "Upgrading database, this will drop tables and recreate.");
             db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
             onCreate(db);
          }
       }
    }

Вот файл журнала с моего телефона:

[android.intent.category.LAUNCHER] flg=0x10200000 cmp=arc.android.memorygame/.Ma
inActivity } from pid 1875
D/PhoneWindow( 1875): <!>com.android.internal.policy.impl.PhoneWindow 1472<!> co
uldn't save which view has focus because the focused view com.jiubang.ggheart.ap
ps.desks.appfunc.XViewFrame@40675e08 has no id.
I/ActivityManager( 1573): Start proc arc.android.memorygame for activity arc.and
roid.memorygame/.MainActivity: pid=12927 uid=10098 gids={1015}
I/ggheart ( 1875): <!>fs 742<!> onStop
I/wpa_supplicant( 1731): wpa_supplicant_get_scan_results: Start
I/wpa_supplicant( 1731): CTRL-EVENT-SCAN-RESULTS  Ready
I/wpa_supplicant( 1731): wpa_supplicant_event_scan_results: ap_scan 1,  disconne
cted 0
I/wpa_supplicant( 1731): No suitable AP found.
I/wpa_supplicant( 1731): Setting scan request: 20 sec 0 usec
I/dun_service( 1481): process rmnet event
I/dun_service( 1481):  rstate == DUN_RMNETSTATE_ERROR in dun_monitor_kevents
V/WifiMonitor( 1573): <!>android.net.wifi.WifiMonitor$MonitorThread 176<!> Event
 [Setting scan request: 20 sec 0 usec]
I/#LGIME  ( 1671): <!>com.jungle.android.utils.Glog 32<!> #### onStartInput: res
tarting=false, fieldId=2131099699
I/ActivityManager( 1573): <!>com.android.server.am.ActivityRecord 444<!> Display
ed arc.android.memorygame/.MainActivity: +1s490ms
D/StatusBarPolicy( 1657): [BRIGHTHY] 0. mDataNetType: 1
D/StatusBarPolicy( 1657): [BRIGHTHY] curNetwork=51502 curHPLMN=51502
E/dalvikvm-heap(12927): 9850880-byte external allocation too large for this proc
ess.
E/GraphicsJNI(12927): VM won't let us allocate 9850880 bytes
D/skia    (12927): --- decoder->decode returned false
W/dalvikvm(12927): threadid=1: thread exiting with uncaught exception (group=0x4
0018560)
E/AndroidRuntime(12927): FATAL EXCEPTION: main
E/AndroidRuntime(12927): android.view.InflateException: Binary XML file line #2:
 Error inflating class <unknown>
E/AndroidRuntime(12927):        at android.view.LayoutInflater.createView(Layout
Inflater.java:518)
E/AndroidRuntime(12927):        at com.android.internal.policy.impl.PhoneLayoutI
nflater.onCreateView(PhoneLayoutInflater.java:56)
E/AndroidRuntime(12927):        at android.view.LayoutInflater.createViewFromTag
(LayoutInflater.java:568)
E/AndroidRuntime(12927):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:386)
E/AndroidRuntime(12927):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:320)
E/AndroidRuntime(12927):        at android.view.LayoutInflater.inflate(LayoutInf
later.java:276)
E/AndroidRuntime(12927):        at com.android.internal.policy.impl.PhoneWindow.
setContentView(PhoneWindow.java:207)
E/AndroidRuntime(12927):        at android.app.Activity.setContentView(Activity.
java:1657)
E/AndroidRuntime(12927):        at arc.android.memorygame.MainActivity.startGame
(MainActivity.java:194)
E/AndroidRuntime(12927):        at arc.android.memorygame.MainActivity$1.onClick
(MainActivity.java:108)
E/AndroidRuntime(12927):        at android.view.View.performClick(View.java:2485
)
E/AndroidRuntime(12927):        at android.view.View$PerformClick.run(View.java:
9080)
E/AndroidRuntime(12927):        at android.os.Handler.handleCallback(Handler.jav
a:587)
E/AndroidRuntime(12927):        at android.os.Handler.dispatchMessage(Handler.ja
va:92)
E/AndroidRuntime(12927):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(12927):        at android.app.ActivityThread.main(ActivityThrea
d.java:3729)
E/AndroidRuntime(12927):        at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(12927):        at java.lang.reflect.Method.invoke(Method.java:5
07)
E/AndroidRuntime(12927):        at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:874)
E/AndroidRuntime(12927):        at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:632)
E/AndroidRuntime(12927):        at dalvik.system.NativeStart.main(Native Method)

E/AndroidRuntime(12927): Caused by: java.lang.reflect.InvocationTargetException
E/AndroidRuntime(12927):        at java.lang.reflect.Constructor.constructNative
(Native Method)
E/AndroidRuntime(12927):        at java.lang.reflect.Constructor.newInstance(Con
structor.java:415)
E/AndroidRuntime(12927):        at android.view.LayoutInflater.createView(Layout
Inflater.java:505)
E/AndroidRuntime(12927):        ... 20 more
E/AndroidRuntime(12927): Caused by: java.lang.OutOfMemoryError: bitmap size exce
eds VM budget
E/AndroidRuntime(12927):        at android.graphics.BitmapFactory.nativeDecodeAs
set(Native Method)
E/AndroidRuntime(12927):        at android.graphics.BitmapFactory.decodeStream(B
itmapFactory.java:460)
E/AndroidRuntime(12927):        at android.graphics.BitmapFactory.decodeResource
Stream(BitmapFactory.java:336)
E/AndroidRuntime(12927):        at android.graphics.drawable.Drawable.createFrom
ResourceStream(Drawable.java:697)
E/AndroidRuntime(12927):        at android.content.res.Resources.loadDrawable(Re
sources.java:1709)
E/AndroidRuntime(12927):        at android.content.res.TypedArray.getDrawable(Ty
pedArray.java:601)
E/AndroidRuntime(12927):        at android.view.View.<init>(View.java:1951)
E/AndroidRuntime(12927):        at android.view.View.<init>(View.java:1899)
E/AndroidRuntime(12927):        at android.view.ViewGroup.<init>(ViewGroup.java:
286)
E/AndroidRuntime(12927):        at android.widget.LinearLayout.<init>(LinearLayo
ut.java:120)
E/AndroidRuntime(12927):        ... 23 more
W/ActivityManager( 1573):   Force finishing activity arc.android.memorygame/.Mai
nActivity
W/ActivityManager( 1573): Activity pause timeout for HistoryRecord{4070d4e8 arc.
android.memorygame/.MainActivity}
I/DemoService( 1875): <!>fs 730<!> DiyScheduer.onStart
I/ggheart ( 1875): <!>fs 732<!> onStart
I/ActivityManager( 1573): No longer want com.viber.voip:keepAliveReceiver (pid 2
474): hidden #16
D/StatusBarPolicy( 1657): [BRIGHTHY] 0. mDataNetType: 1
D/StatusBarPolicy( 1657): [BRIGHTHY] curNetwork=51502 curHPLMN=51502
I/#LGIME  ( 1671): <!>com.jungle.android.utils.Glog 32<!> #### onStartInput: res
tarting=false, fieldId=-1
I/ActivityManager( 1573): Process arc.android.memorygame (pid 12927) has died.

Кроме того, кто-нибудь может помочь мне в запросах на Java?Я довольно новичок в этом.Как видите, я просто редактирую, а затем тестирую команды запросов.Подробное представление о том, как это работает, будет в порядке.

1 Ответ

0 голосов
/ 01 ноября 2011

Хорошо. есть исключение - OutOfMemoryError при накачке растрового изображения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...