** 我被推荐使用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
当我尝试运行它时,我在手机上收到错误消息。
请告诉我我做错了什么
信息
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的截图
答案 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 /文件夹。