Android 应用程序打开后立即关闭
我的原型 Android 应用程序(我应该提到这是我的第一个)每当我通过 Eclipse 运行它时就会崩溃,只要它打开。我搜索过这个网站和许多其他网站,这个问题似乎很常见,但对我来说却不是这样。我已经检查了 AndroidManifest.xml 文件,并且相当确定它是正确的,但我还是将其附在此处。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cyphr"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".NSBHSActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DayActivity"
android:label="@string/app_name">
</activity>
<activity android:name=".WeekActivity"
android:label="@string/app_name">
</activity>
</application>
据我所知,这是从程序启动到终止的 logcat 消息。
08-09 18:23:57.342: INFO/dalvikvm(24229): Debugger has detached; object registry had 1 entries 08-09 18:23:57.358: ERROR/AndroidRuntime(24229): ERROR: thread attach failed 08-09 18:23:57.756: INFO/ActivityManager(1194): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cyphr/.NSBHSActivity } 08-09 18:23:57.795: INFO/dalvikvm(24239): Debugger has detached; object registry had 1 entries 08-09 18:23:57.819: ERROR/AndroidRuntime(24239): ERROR: thread attach failed 08-09 18:23:57.897: INFO/ActivityManager(1194): Start proc com.cyphr for activity com.cyphr/.NSBHSActivity: pid=24246 uid=10103 gids={} 08-09 18:23:57.959: INFO/foo(1194): ********************** resuming: 1143348080 08-09 18:23:58.155: ERROR/dalvikvm(24246): Stack overflow on calling method: 08-09 18:23:58.155: ERROR/dalvikvm(24246): android.content.res.AssetManager.loadResourceValue() 08-09 18:23:58.155: ERROR/dalvikvm(24246): prototype : (ILandroid/util/TypedValue;Z)I 08-09 18:23:58.155: ERROR/dalvikvm(24246): shorty : IILZ 08-09 18:23:58.155: ERROR/dalvikvm(24246): registersSize : 4 08-09 18:23:58.155: ERROR/dalvikvm(24246): insSize : 4 08-09 18:23:58.178: ERROR/dalvikvm(24246): outsSize : 0 08-09 18:23:58.178: ERROR/dalvikvm(24246): method 0x4108cf64, rPC 0x4205308e, self->curFrame 0x4104c224 08-09 18:23:58.178: ERROR/dalvikvm(24246): rGLUE 0xbef439f8: 08-09 18:23:58.178: ERROR/dalvikvm(24246): rGLUE->pc 0x41fe8b68, rGLUE->fp 0x4104eeb8, rGLUE->method 0x4108d5b4: 08-09 18:23:58.178: ERROR/dalvikvm(24246): android.content.res.AssetManager.getResourceValue() 08-09 18:23:58.178: ERROR/dalvikvm(24246): prototype : (ILandroid/util/TypedValue;Z)Z 08-09 18:23:58.178: ERROR/dalvikvm(24246): shorty : ZILZ 08-09 18:23:58.178: ERROR/dalvikvm(24246): registersSize : 8 08-09 18:23:58.178: ERROR/dalvikvm(24246): insSize : 4 08-09 18:23:58.178: ERROR/dalvikvm(24246): outsSize : 4 08-09 18:23:58.178: INFO/dalvikvm(24246): Stack overflow, expanding (0x4104c200 to 0x4104c000) 08-09 18:23:58.178: INFO/dalvikvm(24246): Current stack size is 12288 08-09 18:23:58.178: INFO/dalvikvm(24246): "main" prio=5 tid=3 RUNNABLE 08-09 18:23:58.178: INFO/dalvikvm(24246): | group="main" sCount=0 dsCount=0 s=N obj=0x4001e368 self=0xbd90 08-09 18:23:58.178: INFO/dalvikvm(24246): | sysTid=24246 nice=0 sched=0/0 cgrp=unknown handle=-1343993120
根据要求,来自 NSBHSActivity 的 onCreate():
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, DayActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("day").setIndicator("Day",
res.getDrawable(R.drawable.ic_tab_day))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, WeekActivity.class);
spec = tabHost.newTabSpec("week").setIndicator("Week",
res.getDrawable(R.drawable.ic_tab_day))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
}
如果您需要额外信息,请发表评论。另外,正如我所说,这是我的第一个 Android 应用程序,但我在 Java 方面有很好的经验。
My prototype android app (I should mention it's my first) crashes whenever I run it through eclipse, as soon as it opens. I have searched this site and many others and this problem seems common, but not in the way it is for me. I have checked the AndroidManifest.xml file and am fairly sure it is correct, but I attach it here anyway.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.cyphr"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk android:minSdkVersion="7" />
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".NSBHSActivity"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".DayActivity"
android:label="@string/app_name">
</activity>
<activity android:name=".WeekActivity"
android:label="@string/app_name">
</activity>
</application>
Here are the logcat messages, from the program starting to it dying, as far as I can tell.
08-09 18:23:57.342: INFO/dalvikvm(24229): Debugger has detached; object registry had 1 entries 08-09 18:23:57.358: ERROR/AndroidRuntime(24229): ERROR: thread attach failed 08-09 18:23:57.756: INFO/ActivityManager(1194): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cyphr/.NSBHSActivity } 08-09 18:23:57.795: INFO/dalvikvm(24239): Debugger has detached; object registry had 1 entries 08-09 18:23:57.819: ERROR/AndroidRuntime(24239): ERROR: thread attach failed 08-09 18:23:57.897: INFO/ActivityManager(1194): Start proc com.cyphr for activity com.cyphr/.NSBHSActivity: pid=24246 uid=10103 gids={} 08-09 18:23:57.959: INFO/foo(1194): ********************** resuming: 1143348080 08-09 18:23:58.155: ERROR/dalvikvm(24246): Stack overflow on calling method: 08-09 18:23:58.155: ERROR/dalvikvm(24246): android.content.res.AssetManager.loadResourceValue() 08-09 18:23:58.155: ERROR/dalvikvm(24246): prototype : (ILandroid/util/TypedValue;Z)I 08-09 18:23:58.155: ERROR/dalvikvm(24246): shorty : IILZ 08-09 18:23:58.155: ERROR/dalvikvm(24246): registersSize : 4 08-09 18:23:58.155: ERROR/dalvikvm(24246): insSize : 4 08-09 18:23:58.178: ERROR/dalvikvm(24246): outsSize : 0 08-09 18:23:58.178: ERROR/dalvikvm(24246): method 0x4108cf64, rPC 0x4205308e, self->curFrame 0x4104c224 08-09 18:23:58.178: ERROR/dalvikvm(24246): rGLUE 0xbef439f8: 08-09 18:23:58.178: ERROR/dalvikvm(24246): rGLUE->pc 0x41fe8b68, rGLUE->fp 0x4104eeb8, rGLUE->method 0x4108d5b4: 08-09 18:23:58.178: ERROR/dalvikvm(24246): android.content.res.AssetManager.getResourceValue() 08-09 18:23:58.178: ERROR/dalvikvm(24246): prototype : (ILandroid/util/TypedValue;Z)Z 08-09 18:23:58.178: ERROR/dalvikvm(24246): shorty : ZILZ 08-09 18:23:58.178: ERROR/dalvikvm(24246): registersSize : 8 08-09 18:23:58.178: ERROR/dalvikvm(24246): insSize : 4 08-09 18:23:58.178: ERROR/dalvikvm(24246): outsSize : 4 08-09 18:23:58.178: INFO/dalvikvm(24246): Stack overflow, expanding (0x4104c200 to 0x4104c000) 08-09 18:23:58.178: INFO/dalvikvm(24246): Current stack size is 12288 08-09 18:23:58.178: INFO/dalvikvm(24246): "main" prio=5 tid=3 RUNNABLE 08-09 18:23:58.178: INFO/dalvikvm(24246): | group="main" sCount=0 dsCount=0 s=N obj=0x4001e368 self=0xbd90 08-09 18:23:58.178: INFO/dalvikvm(24246): | sysTid=24246 nice=0 sched=0/0 cgrp=unknown handle=-1343993120
onCreate() from NSBHSActivity, as requested:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Resources res = getResources(); // Resource object to get Drawables
TabHost tabHost = getTabHost(); // The activity TabHost
TabHost.TabSpec spec; // Reusable TabSpec for each tab
Intent intent; // Reusable Intent for each tab
// Create an Intent to launch an Activity for the tab (to be reused)
intent = new Intent().setClass(this, DayActivity.class);
// Initialize a TabSpec for each tab and add it to the TabHost
spec = tabHost.newTabSpec("day").setIndicator("Day",
res.getDrawable(R.drawable.ic_tab_day))
.setContent(intent);
tabHost.addTab(spec);
// Do the same for the other tabs
intent = new Intent().setClass(this, WeekActivity.class);
spec = tabHost.newTabSpec("week").setIndicator("Week",
res.getDrawable(R.drawable.ic_tab_day))
.setContent(intent);
tabHost.addTab(spec);
tabHost.setCurrentTab(1);
}
Comment if you require extra information. Also, as I said, this is my first Android app, but I have good experience in Java.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我不认为
android:theme="@android:style/Theme.NoTitleBar"
是一个有效的标签..删除它并检查。i don't think
android:theme="@android:style/Theme.NoTitleBar"
is a valid tag.. remove it and check.您已将应用程序标记放在清单标记之外:像这样使用:
You have put application tag out of manifest tag: use like this:
我终于发现这是因为图像文件名的原因。它们必须是
ic_tab_day_grey.png
和ic_tab_day_white.png
状态列表才能接受它们。耶!感谢大家的帮助!
I finally found out it was because of the image file names. They needed to be
ic_tab_day_grey.png
andic_tab_day_white.png
for the state list to accept them. Yay!Thanks everyone for your help!