Iappcompat v21:材料设计ActionBar()InflateException error-inflating-class

Kam*_*icz 1 android nullpointerexception fragment android-appcompat android-actionbar

试图将(appcompat v20)中的应用程序移动到新库appcompat v21

与:appcompat-v7:20工作很好

我这样做了:

ActionBarActivity implements ActionBar.TabListener, ActionBar.OnNavigationListener
Run Code Online (Sandbox Code Playgroud)

有这个:

android.view.InflateException: Binary XML file line #17: Error inflating class android.support.v7.internal.widget.ActionBarOverlayLayout

扩展类android.support.v7.internal.widget.ActionBarView时出错

Gab*_*tti 11

为了使用新的appcompat v21你必须:

  • 延伸ActionBarActivity而不是FragmentActivity
  • getSupportActionBar()而不是getActionBar()
  • 使用从Theme.AppCompat继承的主题(例如Light或NoActionBar)

编辑:23/04/2015

有了新的appcompat v22.1你应该使用新的AppCompatActivity而不是ActionBarActivity

此外,ActionBar.TabListener,ActionBar.OnNavigationListener:操作栏导航模式已弃用,内联工具栏操作栏不支持.请考虑使用其他常见的导航模式.

来源doc:https: //developer.android.com/reference/android/support/v7/app/ActionBar.html#addTab(android.support.v7.app.ActionBar.Tab)


Kam*_*icz 6

问题比看上去要深刻得多.

我的代码是正确的.该主题的所有建议都相关且正确.

事实证明,外部库包含旧版本support-v4,它不支持 MATERIAL DESIGN(appcompat-v7:21)但仅支持appcompat-v7:20

这是原因 ActionBar() InflateException error-inflating-class.

support-v4所有外部库中的更新都将解决问题.

我的build.gradle在其他主题中:

多个dex文件定义了Landroid/support/v4 /.