我在我的工作应用程序中添加了一个类。我希望新类成为第一个要加载的页面,称为dashboard.class。我将它添加到清单中,现在当您尝试加载时,应用程序强制关闭。我也去了清单中删除了条目,应用再次运行。请告诉我我做错了什么
<activity
android:name="com.magicbuddy.gamble.Dashboard"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.magicbuddy.gamble.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="com.MagicBuddy.Gamble.MAINACTIVITY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
仪表板是我添加的新类。当我删除它并将MainActivity重置为LAUNCHER和MAIN时,该应用程序将再次正常工作。
我尝试了删除intent-filter的已发布解决方案,但仍然崩溃了。这是logcat **也谢谢你们的回复
01-31 13:56:38.709:D / AndroidRuntime(1995):关闭VM 01-31 13:56:38.709:W / dalvikvm(1995):threadid = 1:线程退出,未捕获异常(group = 0xb2eda288) 01-31 13:56:38.709:E / AndroidRuntime(1995):致命异常:主要 01-31 13:56:38.709:E / AndroidRuntime(1995):java.lang.RuntimeException:无法启动活动ComponentInfo {com.magicbuddy.gamble / com.magicbuddy.gamble.Dashboard}:java.lang.ClassCastException:android .widget.ImageButton无法强制转换为android.widget.Button 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2059) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2084) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread.access $ 600(ActivityThread.java:130) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1195) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.os.Handler.dispatchMessage(Handler.java:99) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.os.Looper.loop(Looper.java:137) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread.main(ActivityThread.java:4745) 01-31 13:56:38.709:E / AndroidRuntime(1995):at java.lang.reflect.Method.invokeNative(Native Method) 01-31 13:56:38.709:E / AndroidRuntime(1995):at java.lang.reflect.Method.invoke(Method.java:511) 01-31 13:56:38.709:E / AndroidRuntime(1995):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:786) 01-31 13:56:38.709:E / AndroidRuntime(1995):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 01-31 13:56:38.709:E / AndroidRuntime(1995):at dalvik.system.NativeStart.main(Native Method) 01-31 13:56:38.709:E / AndroidRuntime(1995):引起:java.lang.ClassCastException:android.widget.ImageButton无法强制转换为android.widget.Button 01-31 13:56:38.709:E / AndroidRuntime(1995):at com.magicbuddy.gamble.Dashboard.onCreate(Dashboard.java:25) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.Activity.performCreate(Activity.java:5008) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1079) 01-31 13:56:38.709:E / AndroidRuntime(1995):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2023)
我添加了一个只有4个按钮的类,每个按钮都有一个图像。这就是我想先加载的内容,但是当我尝试实现这一点时,这就是logcat错误
答案 0 :(得分:1)
根据logcat,Exception
是:
java.lang.ClassCastException:android.widget.ImageButton不能 强制转换为android.widget.Button
您的信息中心onCreate()
的{{1}}方法会发生这种情况。您正在向Activity
投射ImageButton
。问题不在于清单,而在于班级本身。
答案 1 :(得分:0)
尝试从MainActivity中删除intent-filter
。您真的只需要在尝试控制哪些类型的意图访问您的活动时定义意图过滤器,但如果您的Dashboard活动只会按照我的想法调用它,那么您不需要包含意图过滤器,因为它是同一个包的一部分