( Android ) 切换到新 activity 时空白黑屏
( Android ) Blank Black Screen on switching to new activity
我正在使用 eclipse,当我 运行 我的应用程序时,第一个 activity 工作正常,但是当我单击一个按钮启动另一个 activity 时,黑屏这是我在模拟器上得到的全部。
下面是logcat,好像是内存问题,不知道怎么处理。我尝试在 avd 管理器中将内部内存增加到 4 GiB,但仍然没有帮助。
P.S - 第二个 activity 从内部存储器访问数据库文件。
有人可以帮忙吗?
logcat : -
02-24 10:50:05.942: W/FileUtils(9321): chmod 失败 (/data/data/com.example.quiz/databases/CQuiz): libcore.io.ErrnoException:chmod 失败:EPERM(不允许操作)
.
.
02-24 10:51:06.812: E/dalvikvm-heap(9321): 529564 字节分配内存不足。
.
.
02-24 10:50:06.462: D/dalvikvm(9321): GC_FOR_ALLOC 释放 359K,13% 释放 3053K/3476K,暂停 74ms,总计 108ms
02-24 10:50:07.592: D/dalvikvm(9321): GC_FOR_ALLOC 释放 64K,4% 释放 3501K/3632K,暂停 83ms,总计 84ms
.
.
02-24 10:51:03.602: I/dalvikvm-heap(9321): 将目标 GC 堆从 48.252MB 钳制到 48.000MB
02-24 10:51:03.602: D/dalvikvm(9321): GC_FOR_ALLOC 释放 1034K,3% 释放 47300K/48412K,暂停 930ms,总计 930ms
.
.
02-24 10:51:06.812: E/dalvikvm-heap(9321): 529564 字节分配内存不足。
.
.
02-24 10:51:06.932: D/AndroidRuntime(9321): 正在关闭虚拟机
02-24 10:51:06.932: W/dalvikvm(9321): threadid=1: 线程退出并出现未捕获的异常 (group=0xb2a9aba8)
02-24 10:51:06.982: E/AndroidRuntime(9321): 致命异常: main
02-24 10:51:06.982: E/AndroidRuntime(9321): 进程: com.example.quiz, PID: 9321
02-24 10:51:06.982: E/AndroidRuntime(9321): java.lang.OutOfMemoryError
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 java.util.ArrayList.add(ArrayList.java:118)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 com.example.quiz.Andro.onCreate(Andro.java:55)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.Activity.performCreate(Activity.java:5231)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.access$800(ActivityThread.java:135)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.os.Handler.dispatchMessage(Handler.java:102)
02-24 10:57:13.152: W/FileUtils(11021): chmod 失败 (/data/data/com.example.quiz/databases/CQuiz): libcore.io.ErrnoException:chmod 失败:EPERM(不允许操作)
第二个Activity:-
public class Andro extends ActionBarActivity{
TextView tv;
RadioButton r1,r2,r3,r4;
RadioGroup rg;
Button pre,nex,conf;
MyDatabase md;
Cursor c;
String ans;
protected void onCreate(Bundle b){
super.onCreate(b);
setContentView(R.layout.a_quiz);
tv= (TextView)findViewById(R.id.textView1);
r1 = (RadioButton)findViewById(R.id.RadioButton01);
r2 = (RadioButton)findViewById(R.id.radio0);
r3 = (RadioButton)findViewById(R.id.radio1);
r4 = (RadioButton)findViewById(R.id.radio2);
rg = (RadioGroup)findViewById(R.id.radioGroup1);
pre = (Button)findViewById(R.id.button1);
nex = (Button)findViewById(R.id.button2);
conf = (Button)findViewById(R.id.button3);
md= new MyDatabase(getApplicationContext(),"CQuiz",null,1);
c = md.fetch();
c.moveToFirst();
Integer count=c.getColumnCount();
Toast.makeText(this,count.toString()+"columns",3000).show();
while(c.isFirst())
{
tv.setText(c.getString(0));
r1.setText(c.getString(1));
r2.setText(c.getString(2));
r3.setText(c.getString(3));
r4.setText(c.getString(4));
}
}
}
看起来这是一个已知错误。
看看:
https://code.google.com/p/android/issues/detail?id=64345 ?
如何以及在哪里创建数据库?
我正在使用 eclipse,当我 运行 我的应用程序时,第一个 activity 工作正常,但是当我单击一个按钮启动另一个 activity 时,黑屏这是我在模拟器上得到的全部。 下面是logcat,好像是内存问题,不知道怎么处理。我尝试在 avd 管理器中将内部内存增加到 4 GiB,但仍然没有帮助。
P.S - 第二个 activity 从内部存储器访问数据库文件。
有人可以帮忙吗?
logcat : -
02-24 10:50:05.942: W/FileUtils(9321): chmod 失败 (/data/data/com.example.quiz/databases/CQuiz): libcore.io.ErrnoException:chmod 失败:EPERM(不允许操作)
.
.
02-24 10:51:06.812: E/dalvikvm-heap(9321): 529564 字节分配内存不足。
.
.
02-24 10:50:06.462: D/dalvikvm(9321): GC_FOR_ALLOC 释放 359K,13% 释放 3053K/3476K,暂停 74ms,总计 108ms
02-24 10:50:07.592: D/dalvikvm(9321): GC_FOR_ALLOC 释放 64K,4% 释放 3501K/3632K,暂停 83ms,总计 84ms
.
.
02-24 10:51:03.602: I/dalvikvm-heap(9321): 将目标 GC 堆从 48.252MB 钳制到 48.000MB
02-24 10:51:03.602: D/dalvikvm(9321): GC_FOR_ALLOC 释放 1034K,3% 释放 47300K/48412K,暂停 930ms,总计 930ms
.
.
02-24 10:51:06.812: E/dalvikvm-heap(9321): 529564 字节分配内存不足。
.
.
02-24 10:51:06.932: D/AndroidRuntime(9321): 正在关闭虚拟机
02-24 10:51:06.932: W/dalvikvm(9321): threadid=1: 线程退出并出现未捕获的异常 (group=0xb2a9aba8)
02-24 10:51:06.982: E/AndroidRuntime(9321): 致命异常: main
02-24 10:51:06.982: E/AndroidRuntime(9321): 进程: com.example.quiz, PID: 9321
02-24 10:51:06.982: E/AndroidRuntime(9321): java.lang.OutOfMemoryError
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 java.util.ArrayList.add(ArrayList.java:118)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 com.example.quiz.Andro.onCreate(Andro.java:55)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.Activity.performCreate(Activity.java:5231)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread.access$800(ActivityThread.java:135)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
02-24 10:51:06.982: E/AndroidRuntime(9321): 在 android.os.Handler.dispatchMessage(Handler.java:102)
02-24 10:57:13.152: W/FileUtils(11021): chmod 失败 (/data/data/com.example.quiz/databases/CQuiz): libcore.io.ErrnoException:chmod 失败:EPERM(不允许操作)
第二个Activity:-
public class Andro extends ActionBarActivity{
TextView tv;
RadioButton r1,r2,r3,r4;
RadioGroup rg;
Button pre,nex,conf;
MyDatabase md;
Cursor c;
String ans;
protected void onCreate(Bundle b){
super.onCreate(b);
setContentView(R.layout.a_quiz);
tv= (TextView)findViewById(R.id.textView1);
r1 = (RadioButton)findViewById(R.id.RadioButton01);
r2 = (RadioButton)findViewById(R.id.radio0);
r3 = (RadioButton)findViewById(R.id.radio1);
r4 = (RadioButton)findViewById(R.id.radio2);
rg = (RadioGroup)findViewById(R.id.radioGroup1);
pre = (Button)findViewById(R.id.button1);
nex = (Button)findViewById(R.id.button2);
conf = (Button)findViewById(R.id.button3);
md= new MyDatabase(getApplicationContext(),"CQuiz",null,1);
c = md.fetch();
c.moveToFirst();
Integer count=c.getColumnCount();
Toast.makeText(this,count.toString()+"columns",3000).show();
while(c.isFirst())
{
tv.setText(c.getString(0));
r1.setText(c.getString(1));
r2.setText(c.getString(2));
r3.setText(c.getString(3));
r4.setText(c.getString(4));
}
}
}
看起来这是一个已知错误。
看看:
https://code.google.com/p/android/issues/detail?id=64345 ?
如何以及在哪里创建数据库?