ActionBarActivity在Phone上捕获错误

时间:2013-07-27 11:29:47

标签: android android-actionbar android-support-library android-actionbar-compat

** 我被推荐使用ActionBar Activity ** 这是前面的代码

import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBarActivity;


public class MainActivity extends Activity  {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main); 

    }

我写了新的申请并遵循了建议。

import android.os.Bundle;
    import android.support.v7.app.ActionBar;
    import android.support.v7.app.ActionBarActivity;


    public class MainActivity extends ActionBarActivity {

          @Override
          public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            ActionBar actionBar =getSupportActionBar();
            actionBar.setDisplayHomeAsUpEnabled(true);

            setContentView(R.layout.activity_main);
          }

          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
          }

        }

如果我使用ACtionBarActivity而不是Activity
当我尝试运行它时,我在手机上收到错误消息。
请告诉我我做错了什么

来自Logcat的

信息

    07-27 15:14:19.942: I/Process(21715): Sending signal. PID: 21715 SIG: 9
07-27 15:34:38.521: W/dalvikvm(23579): Unable to resolve superclass of Lcom/example/project/MainActivity; (532)
07-27 15:34:38.521: W/dalvikvm(23579): Link of class 'Lcom/example/project/MainActivity;' failed
07-27 15:34:38.521: D/AndroidRuntime(23579): Shutting down VM
07-27 15:34:38.521: W/dalvikvm(23579): threadid=1: thread exiting with uncaught exception (group=0x40ae5210)
07-27 15:34:38.521: E/AndroidRuntime(23579): FATAL EXCEPTION: main
07-27 15:34:38.521: E/AndroidRuntime(23579): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.project/com.example.project.MainActivity}: java.lang.ClassNotFoundException: com.example.project.MainActivity
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1891)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1992)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread.access$600(ActivityThread.java:127)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1158)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.os.Looper.loop(Looper.java:137)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread.main(ActivityThread.java:4441)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at java.lang.reflect.Method.invokeNative(Native Method)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at java.lang.reflect.Method.invoke(Method.java:511)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:823)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:590)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at dalvik.system.NativeStart.main(Native Method)
07-27 15:34:38.521: E/AndroidRuntime(23579): Caused by: java.lang.ClassNotFoundException: com.example.project.MainActivity
07-27 15:34:38.521: E/AndroidRuntime(23579):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
07-27 15:34:38.521: E/AndroidRuntime(23579):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1882)
07-27 15:34:38.521: E/AndroidRuntime(23579):    ... 11 more
07-27 15:34:38.531: I/Process(23579): Sending signal. PID: 23579 SIG: 9

编辑并导出屏幕截图  http://i.stack.imgur.com/MNfc1.jpg

1-7的截图

http://i.stack.imgur.com/NTpP3.jpg

3 个答案:

答案 0 :(得分:5)

在我的应用程序项目中将“Android私有库”和“Android依赖项”移动到“排序和导出”列表的顶部之后,我已经完成了它。 此外,我在这个列表中没有android-support-v7-appcompat。 在android-support-v7-appcompat项目中,我在订单和导出列表中没有支持jar,但是检查了“Android Private Libraries”。 请检查以下链接:

Setting up ActionBarCompat support library in Eclipse

Implementing Action Bar using ActionBarCompat support library in Android

答案 1 :(得分:1)

确保将支持库添加到项目中并导出。您可以通过查看项目的属性,单击Java Build Path,然后单击Order and Export选项卡在Eclipse中执行此操作。然后确保选中Android Private Libraries

您是否按照以下步骤操作:http://developer.android.com/tools/support-library/setup.html#

答案 2 :(得分:1)

与Android Studio完全相同的堆栈跟踪。我认为这是因为Android无法为ActionBarActivity找到合适的主题。

无论如何,这就是我解决它的方式:

将以下内容添加到AndroidManifest.xml中的MainActivity:

android:theme="@style/Theme.AppCompat.Light"

如果现在有效 - 太好了!如果Android Studio找不到主题: 复制文件

sdk/extras/android/support/v7/appcompat/res/values/themes.xml
sdk/extras/android/support/v7/appcompat/res/values/themes_base.xml

到项目中的res / values /文件夹。