代码之家  ›  专栏  ›  技术社区  ›  user257111

修改的Tabhost示例在启动时崩溃

  •  0
  • user257111  · 技术社区  · 14 年前

    所以我刚买了一个Android设备,想尝试一些Android开发,给自己创建一个简单的任务管理器。我们的想法是实现android周围的tab用户界面,所以我偶然发现: http://developer.android.com/resources/tutorials/views/hello-tabwidget.html

    一切都好。从这一点上说,我需要道歉,因为我将是不具体的,因为我不知道问题在哪里。发生的事情很简单。我运行我的应用程序,我得到一个对话框说“com.app.appname被迫关闭”。就这样。我看不到用户界面。

    所以,不用再费吹灰之力,我已经实现了:

    概述.java:

    public class Overview extends TabActivity {
    
        /** Called when the activity is first created. */
        @Override
        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;  // Resusable TabSpec for each tab
            Intent intent;  // Reusable Intent for each tab
    
            intent = new Intent().setClass(this, ViewTasks.class);
            spec = tabHost.newTabSpec("tasks").setIndicator("Tasks",
                              res.getDrawable(R.drawable.ic_tab_artists))
                          .setContent(intent);
            tabHost.addTab(spec);
    
            intent = new Intent().setClass(this, ViewGoals.class);
            spec = tabHost.newTabSpec("goals").setIndicator("Goals",
                              res.getDrawable(R.drawable.ic_tab_artists))
                          .setContent(intent);
            tabHost.addTab(spec);
    
            tabHost.setCurrentTab(0);
        }
    }
    

    main.xml(res/layout)

    <?xml version="1.0" encoding="utf-8"?>
    <TabHost
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <LinearLayout
            android:orientation="vertical"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:padding="5dp">
            <TabWidget
                android:id="@android:id/tabs"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content" />
            <FrameLayout
                android:id="@android:id/tabcontent"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                android:padding="5dp" />
        </LinearLayout>
    </TabHost>
    

    Manifest.xml文件:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="the.correct.package.name"
          android:versionCode="1"
          android:versionName="1.0">
          <application android:icon="@drawable/icon" android:label="@string/app_name" android:name="vxataskmaster">
            <activity android:name="Overview" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:enabled="true" android:screenOrientation="unspecified">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <action android:name="android.intent.action.EDIT" />
                    <action android:name="android.intent.action.PICK" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity android:name="ViewGoals" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:enabled="true" android:screenOrientation="unspecified">
                <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <action android:name="android.intent.action.EDIT" />
                    <action android:name="android.intent.action.PICK" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
            <activity android:name="ViewTasks" android:label="@string/app_name" android:theme="@android:style/Theme.NoTitleBar" android:enabled="true" android:screenOrientation="unspecified">
                    <intent-filter>
                    <action android:name="android.intent.action.VIEW" />
                    <action android:name="android.intent.action.EDIT" />
                    <action android:name="android.intent.action.PICK" />
                    <category android:name="android.intent.category.DEFAULT" />
                </intent-filter>
            </activity>
        </application>
        <uses-sdk android:minSdkVersion="8" />
    </manifest> 
    

    据我所知,我已经修改了原始示例,使用了一些自己的类。这些类只实现教程站点上的hello world消息。

    那么,我做错什么了?我似乎无法从调试器中得到任何合理的信息。。。它不指向我的代码中的任何内容,无论是在模拟器上运行还是在我的设备上运行。

    我为粘贴大量代码而道歉。如果我知道问题出在哪里,我会把它减少,但我不。。。!

    谢谢。

    编辑:logcat说:

    11-27 22:51:32.871: ERROR/AndroidRuntime(10662): java.lang.RuntimeException: Unable to instantiate application correct.root.package.taskmaster.ataskmaster: java.lang.ClassNotFoundException: correct.root.package.taskmaster.ataskmaster in loader dalvik.system.PathClassLoader[/data/app/correct.root.package.taskmaster-1.apk]
    
    2 回复  |  直到 14 年前
        1
  •  1
  •   Brandon O'Rourke    14 年前

    就像Falmari建议的那样,您可能缺少AndroidManifest.xml中的活动。ViewGoals和ViewGoals是活动对吗?如果是的话,像概述一样将它们添加到清单中。

    LogCat是与Eclipse集成的Android日志工具。转到调试视图,您应该在那里看到它。

        2
  •  0
  •   user257111user257111    14 年前

    我修好了。不知怎么回事

    android:id="@android:id/tabhost"
    

    从我的桌子上掉下来了。显然,这对工作是非常关键的!上面的答案是因为给了我一些有用的指针(logcat),让我可以推断这个。