У меня проблема с SQL Lite для моей модели телефона LG Optimus One P500.Версия моего телефона для Android обновлена с FroYo до Gingerbread, и обновление отлично работает на мне.Мое приложение также отлично работает на других моделях телефонов.
Приложение сначала работает, а также показывает мою главную страницу, но когда я запускаю игру, появляется проблема, а затем приложение принудительно закрывает мое приложение.
После создания страницы результатов начинается создание базы данных (инициализация).покажет, поэтому я думаю, что проблема не должна существовать после того, как я запустил игру, но после того, как эта проблема началась, только когда я добавил свои коды базы данных.
Для лучшего понимания моя деятельность выглядит так:
- Получить имя при запуске, а затем сохранить имя в строковой переменной после нажатия кнопки запуска.(В этой части моя проблема существует)
- У меня есть таймер и текст оценки во втором макете, который будет получен позже после завершения игры.
- База данных будет создана (если еще не существует), и эти 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?Я довольно новичок в этом.Как видите, я просто редактирую, а затем тестирую команды запросов.Подробное представление о том, как это работает, будет в порядке.