2016-03-06 6 views
0

Привет, практикующий добавление логотипа для приложения с помощью Android-студии. Я добавил простой код следующим образом.java.lang.RuntimeException: Не удалось запустить активность

package com.example.admin.actionbardemo; 

import android.app.ActionBar; 
import android.os.Bundle; 
import android.support.design.widget.FloatingActionButton; 
import android.support.design.widget.Snackbar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.View; 
import android.view.Menu; 
import android.view.MenuItem; 

public class MainActivity extends AppCompatActivity { 

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

     ActionBar actionbar= getActionBar(); 
     actionbar.setIcon(R.mipmap.ic_launcher); 
     actionbar.setDisplayUseLogoEnabled(true); 
     actionbar.setDisplayShowHomeEnabled(true); 

    } 
} 

ошибка:

03-06 02:20:30.272 1381-1381/? E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.admin.actionbardemo, PID: 1381 
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.admin.actionbardemo/com.example.admin.actionbardemo.MainActivity}: java.lang.NullPointerException 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2184) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233) 
     at android.app.ActivityThread.access$800(ActivityThread.java:135) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:136) 
     at android.app.ActivityThread.main(ActivityThread.java:5001) 
     at java.lang.reflect.Method.invokeNative(Native Method) 
     at java.lang.reflect.Method.invoke(Method.java:515) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601) 
     at dalvik.system.NativeStart.main(Native Method) 
     Caused by: java.lang.NullPointerException 
     at com.example.admin.actionbardemo.MainActivity.onCreate(MainActivity.java:21) 
     at android.app.Activity.performCreate(Activity.java:5231) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2148) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)  
     at android.app.ActivityThread.access$800(ActivityThread.java:135)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:136)  
     at android.app.ActivityThread.main(ActivityThread.java:5001)  
     at java.lang.reflect.Method.invokeNative(Native Method)  
     at java.lang.reflect.Method.invoke(Method.java:515)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)  
     at dalvik.system.NativeStart.main(Native Method)  
03-06 02:20:30.276 1381-1384/? D/dalvikvm: GC_CONCURRENT freed 205K, 10% free 3023K/3340K, paused 5ms+0ms, total 6ms 

ответ

0

Ваш getActionBar() возвращает нулевое значение. Думаю, у тебя его нет.

0

это AndroidManifest.xml

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

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".AddingLogo" 
      android:label="@string/title_activity_adding_logo" 
      android:theme="@style/AppTheme.NoActionBar"></activity> 
    </application> 

я использовал android.support.v7.app.ActionBar ActionBar = getSupportActionBar();

insted of
ActionBar actionbar = getActionBar();

еще один запрос -Мой логотип находится в папке с возможностью рисования. для какого расширения требуется логотип PNG или JPG?

0

Тема, которую вы используете, не имеет ActionBar. Вы должны либо изменить родителя вашего AppTheme в styles.xml на тему с помощью ActionBar, либо установить панель инструментов на панели инструментов setSupportActionBar(...) перед вызовом getSupportActionBar()

Смежные вопросы