2016-02-26 65 views
2

我剛剛下載了Eclipse,並使用android-support-v7-appcompat並使用sdk api 23製作了ActionBarActivity。當我嘗試運行該應用程序時,出現此異常(錯誤膨脹類android.support.v7 .widget.Toolbar):無法使用ActionBar創建活動

02-27 00:42:13.266: E/VdcInflateDelegate(17270): Exception while inflating <vector> 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): org.xmlpull.v1.XmlPullParserException: Binary XML file line #17<vector> tag requires viewportWidth > 0 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.graphics.drawable.VectorDrawableCompat.updateStateFromTypedArray(VectorDrawableCompat.java:535) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.graphics.drawable.VectorDrawableCompat.inflate(VectorDrawableCompat.java:472) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.graphics.drawable.VectorDrawableCompat.createFromXmlInner(VectorDrawableCompat.java:436) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.AppCompatDrawableManager$VdcInflateDelegate.createFromXmlInner(AppCompatDrawableManager.java:829) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.AppCompatDrawableManager.loadDrawableFromDelegates(AppCompatDrawableManager.java:303) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:178) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at java.lang.reflect.Constructor.constructNative(Native Method) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:379) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:300) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:264) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at com.testing.name.MainActivity.onCreate(MainActivity.java:13) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.Activity.performCreate(Activity.java:5451) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.ActivityThread.access$900(ActivityThread.java:169) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.os.Handler.dispatchMessage(Handler.java:102) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.os.Looper.loop(Looper.java:136) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at android.app.ActivityThread.main(ActivityThread.java:5476) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at java.lang.reflect.Method.invoke(Method.java:515) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
02-27 00:42:13.266: E/VdcInflateDelegate(17270): at dalvik.system.NativeStart.main(Native Method) 
02-27 00:42:13.276: E/AndroidRuntime(17270): FATAL EXCEPTION: main 
02-27 00:42:13.276: E/AndroidRuntime(17270): Process: com.testing.name, PID: 17270 
02-27 00:42:13.276: E/AndroidRuntime(17270): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.testing.name/com.testing.name.MainActivity}: android.view.InflateException: Binary XML file line #36: Error inflating class android.support.v7.widget.Toolbar 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2328) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread.access$900(ActivityThread.java:169) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.os.Handler.dispatchMessage(Handler.java:102) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.os.Looper.loop(Looper.java:136) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread.main(ActivityThread.java:5476) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at java.lang.reflect.Method.invokeNative(Native Method) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at java.lang.reflect.Method.invoke(Method.java:515) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at dalvik.system.NativeStart.main(Native Method) 
02-27 00:42:13.276: E/AndroidRuntime(17270): Caused by: android.view.InflateException: Binary XML file line #36: Error inflating class android.support.v7.widget.Toolbar 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.createView(LayoutInflater.java:626) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:702) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.rInflate(LayoutInflater.java:761) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.rInflate(LayoutInflater.java:769) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:498) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:398) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.inflate(LayoutInflater.java:354) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:379) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:300) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:264) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:129) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at com.testing.name.MainActivity.onCreate(MainActivity.java:13) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.Activity.performCreate(Activity.java:5451) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292) 
02-27 00:42:13.276: E/AndroidRuntime(17270): ... 11 more 
02-27 00:42:13.276: E/AndroidRuntime(17270): Caused by: java.lang.reflect.InvocationTargetException 
02-27 00:42:13.276: E/AndroidRuntime(17270): at java.lang.reflect.Constructor.constructNative(Native Method) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.view.LayoutInflater.createView(LayoutInflater.java:600) 
02-27 00:42:13.276: E/AndroidRuntime(17270): ... 25 more 
02-27 00:42:13.276: E/AndroidRuntime(17270): Caused by: android.content.res.Resources$NotFoundException: File res/drawable/abc_ic_ab_back_material.xml from drawable resource ID #0x7f020016 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.content.res.Resources.loadDrawable(Resources.java:3063) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.content.res.Resources.getDrawable(Resources.java:1624) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.TintResources.superGetDrawable(TintResources.java:48) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.AppCompatDrawableManager.onDrawableLoadedFromResources(AppCompatDrawableManager.java:374) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.TintResources.getDrawable(TintResources.java:44) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v4.content.ContextCompat.getDrawable(ContextCompat.java:323) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:180) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.AppCompatDrawableManager.getDrawable(AppCompatDrawableManager.java:173) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.TintTypedArray.getDrawable(TintTypedArray.java:60) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.Toolbar.<init>(Toolbar.java:254) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.support.v7.widget.Toolbar.<init>(Toolbar.java:196) 
02-27 00:42:13.276: E/AndroidRuntime(17270): ... 28 more 
02-27 00:42:13.276: E/AndroidRuntime(17270): Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #17: invalid drawable tag vector 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:986) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.graphics.drawable.Drawable.createFromXml(Drawable.java:930) 
02-27 00:42:13.276: E/AndroidRuntime(17270): at android.content.res.Resources.loadDrawable(Resources.java:3059) 
02-27 00:42:13.276: E/AndroidRuntime(17270): ... 38 more 

這是清單中的應用程序標籤,它採用的是風格的動作吧:

<uses-sdk 
    android:minSdkVersion="11" 
    android:targetSdkVersion="23" /> 

<application 
    android:allowBackup="true" 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme" > 

和風格:

<?xml version="1.0" encoding="utf-8"?> 

<style name="AppTheme" parent="@style/Base.Theme.AppCompat.Light.DarkActionBar"> 
    <item name="android:actionBarStyle">@style/MyActionBar</item> 
    <item name="actionBarStyle">@style/MyActionBar</item> 
</style> 

<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar"> 
    <item name="android:background">@android:color/white</item> 
    <item name="background">@android:color/white</item> 
    <item name="android:icon">@android:color/transparent</item> 
    <item name="icon">@android:color/transparent</item> 
    <item name="titleTextStyle">@style/ActionBarTitleText</item> 
    <item name="subtitleTextStyle">@style/ActionBarSubTitleText</item> 
</style> 

<style name="ActionBarTitleText" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/bluedark</item> 
    <item name="android:textSize">28sp</item> 
    <item name="android:gravity">center</item> 
</style> 

<style name="ActionBarSubTitleText" parent="@android:style/TextAppearance"> 
    <item name="android:textColor">@color/bluedark</item> 
    <item name="android:textSize">35sp</item> 
    <item name="android:gravity">center</item> 
</style> 

在活動中的圖形佈局我甚至不看操作欄。 我該如何解決這個問題?

回答

0

我認爲這是兼容庫中的一個bug。 (事做試圖膨脹兼容性佈局abc_screen_toolbar.xml

有幾種方式使用V7庫v23.2.0時解決此問題:

(在最簡單但最貧窮的解決方案的順序在列表的最後一個版本的V7庫v23.0.1或更早版本(而不是使用23.2.0)

  • 使用compile 'com.android.support:support-annotations:23.2.0'的更好,但更復雜的替代品)

    • 還原compile 'com.android.support:support-annotations:[email protected]'(注意缺少@aar這通常更好,但顯然不是在這種情況下)
    • 切換到在您的佈局中明確使用兼容性工具欄小部件,而不是依賴於內置的較老的ActionBar類。 (請在Android指南Setting Up the App Bar使用AppBarLayoutandroid.support.v7.widget.Toolbar並連接到通過一個setSupportActionBar()電話。
  • +0

    我確實已經切換到工具欄 –