2015-02-18 5 views
0

Я начинаю заниматься разработкой Android, поэтому я смотрю учебник и выполняю шаги, но программа не подходит.Android Virtual Device Machine остановлена ​​

Я импортировал v7 appcompat в свой проект. (Но была проблема с файлом v21, но я изменил с 19 на 21 в project.properties, так что это исправлено.)

Однако, когда я расширяю класс Activity в своем файле Java, AVM работает нормально, но когда Я расширяю ActionBarActivity, AVM продолжает говорить: «К сожалению, программа остановилась».

Вот код Java:

import android.os.Bundle; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.ActionBarActivity; 
import android.widget.ListView; 

public class Calculator extends ActionBarActivity { 

    private DrawerLayout drawerLayout; 
    private ListView listView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.calculator); 
     drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
     listView = (ListView) findViewById(R.id.drawerList); 
    } 

} 

Вот XML-код:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/drawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 

    <FrameLayout 
     android:id="@+id/mainContent" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
    </FrameLayout> 

    <ListView 
     android:id="@+id/drawerList" 
     android:entries="@array/left_navigation" 
     android:layout_width="240dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="left"> 
    </ListView> 


</android.support.v4.widget.DrawerLayout> 

Может кто-нибудь сказать мне, что случилось?

Дополнительная информации LogCat здесь:

02-18 02:38:12.125: D/AndroidRuntime(3041): Shutting down VM 
02-18 02:38:12.131: E/AndroidRuntime(3041): FATAL EXCEPTION: main 
02-18 02:38:12.131: E/AndroidRuntime(3041): Process: example, PID: 3041 
02-18 02:38:12.131: E/AndroidRuntime(3041): java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/appcompat/R$styleable; 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:147) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.support.v7.app.ActionBarActivityDelegateBase.onCreate(ActionBarActivityDelegateBase.java:138) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:123) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at example.Calculator.onCreate(Calculator.java:15) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.Activity.performCreate(Activity.java:5933) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.ActivityThread.access$800(ActivityThread.java:144) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.os.Handler.dispatchMessage(Handler.java:102) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.os.Looper.loop(Looper.java:135) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at android.app.ActivityThread.main(ActivityThread.java:5221) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at java.lang.reflect.Method.invoke(Native Method) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at java.lang.reflect.Method.invoke(Method.java:372) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
02-18 02:38:12.131: E/AndroidRuntime(3041): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.appcompat.R$styleable" on path: DexPathList[[zip file "/data/app/example-2/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]] 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  at java.lang.ClassLoader.loadClass(ClassLoader.java:469) 
02-18 02:38:12.131: E/AndroidRuntime(3041):  ... 17 more 
02-18 02:38:12.131: E/AndroidRuntime(3041):  Suppressed: java.lang.ClassNotFoundException: android.support.v7.appcompat.R$styleable 
02-18 02:38:12.131: E/AndroidRuntime(3041):   at java.lang.Class.classForName(Native Method) 
02-18 02:38:12.131: E/AndroidRuntime(3041):   at java.lang.BootClassLoader.findClass(ClassLoader.java:781) 
02-18 02:38:12.131: E/AndroidRuntime(3041):   at java.lang.BootClassLoader.loadClass(ClassLoader.java:841) 
02-18 02:38:12.131: E/AndroidRuntime(3041):   at java.lang.ClassLoader.loadClass(ClassLoader.java:504) 
02-18 02:38:12.131: E/AndroidRuntime(3041):   ... 18 more 
02-18 02:38:12.131: E/AndroidRuntime(3041):  Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available 
+1

При использовании 'ActionBarActivity' вам также нужно добавить правильный стиль в манифест. – Rohit5k2

+0

Какую тему вы используете? Подождите ... Отправьте свой LogCat первым! –

+0

Хорошо, вы можете показать мне более подробную информацию об этом? –

ответ

0

"Вы должны использовать Theme.AppCompat тему (или потомок) с этой деятельностью." Вы используете библиотеку appcompat как проект библиотеки, и в этом случае вы увидите доступные темы под res/values в этом проекте. вам нужно также использовать надлежащий стиль в манифесте.

Для проверки вы можете добавить это в application узле манифеста

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

После того, как я это сделал, появляется сообщение об ошибке.Ошибка: ресурс не найден, который соответствует указанному имени. –

0

Вы расширяете ActionBarActivity, если вы будете использовать ActionBar на апи S ниже, чем 11 для поддержки API> = 7 ЗАКАНЧИВАТЬ http://developer.android.com/guide/topics/ui/actionbar.html

Также он может быть источником путаницы, но при использовании ActionBarActivity вашей темы должны быть ребенком одного из Theme.AppCompact потомков, таких как

<style name="MyTheme" parent="Theme.AppCompact"> 
      <item name="android:colorPrimary">@color/accent_1</item> 
      <item name="android:colorPrimaryDark">@color/accent_dark</item> 
      <item name="android:colorAccent">#f00</item> 

      <item name="colorPrimary">@color/accent_1</item> 
      <item name="colorPrimaryDark">@color/accent_dark</item> 
      <item name="colorAccent">#f00</item> 
    </style> 
Смежные вопросы