【发布时间】:2011-08-09 08:42:17
【问题描述】:
每当我通过 Eclipse 运行它时,我的原型 android 应用程序(我应该提到它是我的第一个)一旦打开就会崩溃。我搜索了这个网站和许多其他网站,这个问题似乎很常见,但对我来说并不是这样。我已经检查了 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): 调试器已分离;对象注册表有 1 个条目
08-09 18:23:57.358: 错误/AndroidRuntime(24229): 错误: 线程附加失败
08-09 18:23:57.756: INFO/ActivityManager(1194): 开始活动: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.cyphr/ .NSBHS活动 }
08-09 18:23:57.795:INFO/dalvikvm(24239):调试器已分离;对象注册表有 1 个条目
08-09 18:23:57.819: 错误/AndroidRuntime(24239): 错误: 线程附加失败
08-09 18:23:57.897: INFO/ActivityManager(1194): 为活动 com.cyphr/.NSBHSActivity 启动 proc com.cyphr: pid=24246 uid=10103 gids={}
08-09 18:23:57.959: INFO/foo(1194): ********************** 恢复: 1143348080
08-09 18:23:58.155:错误/dalvikvm(24246):调用方法的堆栈溢出:
08-09 18:23:58.155: 错误/dalvikvm(24246): android.content.res.AssetManager.loadResourceValue()
08-09 18:23:58.155: 错误/dalvikvm(24246): 原型: (ILandroid/util/TypedValue;Z)I
08-09 18:23:58.155:错误/dalvikvm(24246):矮个子:IILZ
08-09 18:23:58.155: 错误/dalvikvm(24246): registersSize: 4
08-09 18:23:58.155: 错误/dalvikvm(24246): insSize: 4
08-09 18:23:58.178:错误/dalvikvm(24246):超大尺寸:0
08-09 18:23:58.178: 错误/dalvikvm(24246): 方法 0x4108cf64, RPC 0x4205308e, self->curFrame 0x4104c224
08-09 18:23:58.178: 错误/dalvikvm(24246): rGLUE 0xbef439f8:
08-09 18:23:58.178:错误/dalvikvm(24246):rGLUE->pc 0x41fe8b68,rGLUE->fp 0x4104eeb8,rGLUE->方法 0x4108d5b4:
08-09 18:23:58.178: 错误/dalvikvm(24246): android.content.res.AssetManager.getResourceValue()
08-09 18:23:58.178: 错误/dalvikvm(24246): 原型: (ILandroid/util/TypedValue;Z)Z
08-09 18:23:58.178:错误/dalvikvm(24246):矮个子:ZILZ
08-09 18:23:58.178: 错误/dalvikvm(24246): registersSize: 8
08-09 18:23:58.178: 错误/dalvikvm(24246): insSize: 4
08-09 18:23:58.178:错误/dalvikvm(24246):超大尺寸:4
08-09 18:23:58.178: INFO/dalvikvm(24246): 堆栈溢出,扩展(0x4104c200 到 0x4104c000)
08-09 18:23:58.178: INFO/dalvikvm(24246): 当前堆栈大小为 12288
08-09 18:23:58.178:信息/dalvikvm(24246):“主要”prio=5 tid=3 RUNNABLE
08-09 18:23:58.178: 信息/dalvikvm(24246): | group="main" sCount=0 dsCount=0 s=N obj=0x4001e368 self=0xbd90
08-09 18:23:58.178: 信息/dalvikvm(24246): | sysTid=24246 nice=0 sched=0/0 cgrp=未知句柄=-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 方面有很好的经验。
【问题讨论】:
-
你能从 NSBHSActivity 发布 onCreate() 吗?
-
顺便说一句,这是教程的链接:developer.android.com/resources/tutorials/views/…
-
ic_tab_day 是普通图片吧?不是 XML 可绘制对象?
-
@alexanderblom 完整图像文件名为 ic_tab_day.png
-
噢!我认为的图像被称为不是,我改变了它,然后得到了这个错误,这可能是一个全新的罐头鱼:
[2011-08-09 19:33:25 - NSBHS] res/drawable/ic_tab_day.xml:0: error: Resource entry ic_tab_day is already defined. [2011-08-09 19:33:25 - NSBHS] res/drawable/ic_tab_day.png:0: Originally defined here.