2016-02-22 2 views
0

J'ai changé d'activité en AppCompatActivity.Modification de l'activité en AppCompatActivity

a ajouté à Gradle:

dependencies { 
    compile "com.android.support:appcompat-v7:23.0.0" 
} 

mais mon application se bloque. La raison de ce changement est que je veux éditer ma barre d'action. Par exemple: pour ajouter un logo, etc.

Logcat:

02-22 15:02:22.780 2065-2065/com.example.hansbaum.calculator I/art: Not late-enabling -Xcheck:jni (already on) 
02-22 15:02:22.880 2065-2065/com.example.hansbaum.calculator D/AndroidRuntime: Shutting down VM 
02-22 15:02:22.880 2065-2065/com.example.hansbaum.calculator E/AndroidRuntime: FATAL EXCEPTION: main 
                         Process: com.example.hansbaum.calculator, PID: 2065 
                         java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.hansbaum.calculator/com.example.hansbaum.calculator.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360) 
                          at android.app.ActivityThread.access$800(ActivityThread.java:144) 
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278) 
                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                          at android.os.Looper.loop(Looper.java:135) 
                          at android.app.ActivityThread.main(ActivityThread.java:5221) 
                          at java.lang.reflect.Method.invoke(Native Method) 
                          at java.lang.reflect.Method.invoke(Method.java:372) 
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899) 
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694) 
                         Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference 
                          at com.example.hansbaum.calculator.MainActivity.onCreate(MainActivity.java:53) 
                          at android.app.Activity.performCreate(Activity.java:5937) 
                          at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
                          at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251) 
                          at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)  
                          at android.app.ActivityThread.access$800(ActivityThread.java:144)  
                          at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)  
                          at android.os.Handler.dispatchMessage(Handler.java:102)  
                          at android.os.Looper.loop(Looper.java:135)  
                          at android.app.ActivityThread.main(ActivityThread.java:5221)  
                          at java.lang.reflect.Method.invoke(Native Method)  
                          at java.lang.reflect.Method.invoke(Method.java:372)  
                          at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)  
                          at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)  
02-22 15:02:53.210 2065-2065/? I/Process: Sending signal. PID: 2065 SIG: 9 

Manifest:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.hansbaum.calculator" > 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/Theme.AppCompat.Light" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" > 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

s'il vous plaît, après l'écrasement de logcat ici – Kulibin

+1

"mon application plante" - utilisez LogCat pour examiner la trace de la pile Java associée à votre accident: https://stackoverflow.com/questions/23353173/unheureusement-myapp-has-stopped- how-can-i-solve-this – CommonsWare

+0

ok le logcat est là –

Répondre

2

Dans votre fichier manifest vous devez utiliser le thème AppCompat pour vous l'activité. Par exemple:

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

Ajouter un thème pour votre activité dans le manifeste:

<activity 
      android:name=".MainActivity" 
      android:theme="@style/Theme.AppCompat.Light" 
      android:label="@string/app_name" > 

également dans votre code d'activité, vous devez maintenant utiliser getSupportActionBar() au lieu de getActionBar()

Dans votre styles.xml remplacer <style name="AppTheme" parent="Theme.AppCompat.Light"> par <style name="AppTheme" parent="@style/Theme.AppCompat.Light"> et dans votre manifeste remplacer les deux android:theme="@style/Theme.AppCompat.Light" par android:theme="@style/AppTheme"

+0

ne fonctionne pas. Je ai essayé –

+0

pouvez-vous s'il vous plaît ajouter votre fichier manifeste ici – Kulibin

+0

Je l'ai fait. Merci pour ton aide ! –