CoordinatorLayout - 无法在android.content.res.TypedArray.getDrawable处解析索引1处的属性

时间:2016-08-07 11:36:32

标签: java android android-layout android-fragments

我在运行应用程序时出错,请帮助我。 这是app_bar_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context=".MainPro">`

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />

    </android.support.design.widget.AppBarLayout>

    <include layout="@layout/content_main" />

    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|end"
        android:layout_margin="@dimen/fab_margin"
        android:src="@android:drawable/ic_dialog_email" />

</android.support.design.widget.CoordinatorLayout>

这是MainPro.java(启动器活动)

import package gps.tracking;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.app.FragmentManager;
import android.view.View;
import android.support.design.widget.NavigationView;
import android.support.v4.view.GravityCompat;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.Menu;
import android.view.MenuItem;
import com.sifast.gps.fragments.HomeFragment;
import com.sifast.gps.fragments.MainFragment;

public class MainPro extends AppCompatActivity implements NavigationView.OnNavigationItemSelectedListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_projet);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        FragmentManager fm = getFragmentManager();
        fm.beginTransaction().replace(R.id.content_frame,new MainFragment()).commit();


        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });

        DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(
                this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.setDrawerListener(toggle);
        toggle.syncState();

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

    }

这里是错误

 08-07 12:07:56.342 6162-6162/gps.tracking E/AndroidRuntime: FATAL EXCEPTION: main
 Process: gps.tracking, PID: 6162
 java.lang.RuntimeException: Unable to start activity ComponentInfo{gps.tracking/gps.tracking.MainPro}: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2656)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721)
     at android.app.ActivityThread.access$900(ActivityThread.java:168)
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393)
     at android.os.Handler.dispatchMessage(Handler.java:102)
     at android.os.Looper.loop(Looper.java:135)
     at android.app.ActivityThread.main(ActivityThread.java:5753)
     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:1405)
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200)
  Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     at android.view.LayoutInflater.createView(LayoutInflater.java:633)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892)
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249)
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106)
     at gps.tracking.MainPro.onCreate(MainPro.java:24)
     at android.app.Activity.performCreate(Activity.java:6112)
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1117)
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609)
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 
     at android.app.ActivityThread.access$900(ActivityThread.java:168) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5753) 
     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:1405) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
  Caused by: java.lang.reflect.InvocationTargetException
     at java.lang.reflect.Constructor.newInstance(Native Method)
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
     at android.view.LayoutInflater.createView(LayoutInflater.java:607)
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) 
     at android.view.LayotInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
     at com.sifast.gps.tracking.MainPro.onCreate(MainPro.java:24) 
     at android.app.Activity.performCreate(Activity.java:6112) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1117) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 
     at android.app.ActivityThread.access$900(ActivityThread.java:168) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5753) 
     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:1405) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1200) 
  Caused by: java.lang.RuntimeException: Failed to resolve attribute at index 1
     at android.content.res.TypedArray.getDrawable(TypedArray.java:759)
     at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:177)
     at android.support.design.widget.CoordinatorLayout.<init>(CoordinatorLayout.java:159)
     at java.lang.reflect.Constructor.newInstance(Native Method) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:892) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:249) 
     at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:106) 
     at gps.tracking.MainPro.onCreate(MainPro.java:24) 
     at android.app.Activity.performCreate(Activity.java:6112) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1117) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2609) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2721) 
     at android.app.ActivityThread.access$900(ActivityThread.java:168) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1393) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5753) 
     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:1405) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:120)

2 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我尝试添加这个:

  <style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
  </style> 

到我活动的主题。它警告我它需要API 21及更高版本。

当我转向AndroidStudio XML设计视图时,它会向我显示一个渲染问题:缺少样式......?attr / colorPrimaryDark ...

所以我改变了这样的风格:

  <style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
   </style>

尝试添加此功能。它对我有用。希望有帮助

答案 1 :(得分:0)

我找到了解决方案,并在你的styles-v21.xml中创建了以下主题(如果您导入了示例文件,它应该已存在,但如果不存在,请创建它):

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
</style> 

在主要活动部分的清单中调用它,如下所示(删除前面突出显示的行并将其放在其位置):

android:theme="@style/AppTheme.NoActionBar">
thios应该解决这个问题。

InflateException错误膨胀类android.support.design.widget.CoordinatorLayout