android.view.InflateException:二进制XML文件行#9:使用android API 19对类android.support.v7.widget.CardView进行膨胀时出错
我知道这是一个非常常见的问题,我四处寻找解决方案,但到目前为止没有任何帮助 我只在API级别为19的情况下得到这个异常(我的Minsdk版本为19,compile版本为25) 我试过在以下API级别上运行模拟器,一切都很好android.view.InflateException:二进制XML文件行#9:使用android API 19对类android.support.v7.widget.CardView进行膨胀时出错,android,android-support-library,android-cardview,Android,Android Support Library,Android Cardview,我知道这是一个非常常见的问题,我四处寻找解决方案,但到目前为止没有任何帮助 我只在API级别为19的情况下得到这个异常(我的Minsdk版本为19,compile版本为25) 我试过在以下API级别上运行模拟器,一切都很好 API level 25 - works API level 23 - works API level 22 - works API level 21 - works API level 19 - crashes with following exception 以下是例外
API level 25 - works
API level 23 - works
API level 22 - works
API level 21 - works
API level 19 - crashes with following exception
以下是例外情况:
android.view.InflateException: Binary XML file line #9: Error inflating class android.support.v7.widget.CardView
at android.view.LayoutInflater.createView(LayoutInflater.java:621)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:697)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:756)
at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
at android.view.LayoutInflater.inflate(LayoutInflater.java:397)
at com.nitinsharma.materiallistview.CardRecycleViewAdapter.onCreateViewHolder(CardRecycleViewAdapter.java:21)
at com.nitinsharma.materiallistview.CardRecycleViewAdapter.onCreateViewHolder(CardRecycleViewAdapter.java:15)
at android.support.v7.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:6290)
at android.support.v7.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5478)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5363)
at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:5359)
at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2141)
at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1525)
at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1488)
at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:585)
at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3506)
at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:3254)
at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3767)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.RelativeLayout.onLayout(RelativeLayout.java:1055)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:437)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1671)
at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1525)
at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.widget.FrameLayout.layoutChildren(FrameLayout.java:453)
at android.widget.FrameLayout.onLayout(FrameLayout.java:388)
at android.view.View.layout(View.java:14817)
at android.view.ViewGroup.layout(ViewGroup.java:4631)
at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1987)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1744)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
at android.view.Choreographer.doCallbacks(Choreographer.java:574)
at android.view.Choreographer.doFrame(Choreographer.java:544)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5017)
at java.lang.reflect.Method.invokeNati
下面是我的毕业典礼:
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
buildToolsVersion "25.0.1"
defaultConfig {
applicationId "com.nitinsharma.materiallistview"
minSdkVersion 19
targetSdkVersion 25
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
testCompile 'junit:junit:4.12'
compile 'com.android.support:cardview-v7:25.+'
compile 'com.android.support:appcompat-v7:25.+'
compile 'com.android.support:recyclerview-v7:25.+'
compile 'com.android.support:cardview-v7:25.+'
compile 'com.android.support:gridlayout-v7:25.+'
compile 'com.android.support:support-v4:25.+'
compile 'com.android.support:design:25.+'
}
}
最后是我的card_view.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android">
<android.support.v7.widget.CardView
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/bottomcardview"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardBackgroundColor="@android:color/transparent"
card_view:cardElevation="-1dp"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.v7.widget.CardView
android:id="@+id/topcardview"
android:layout_width="match_parent"
android:layout_height="match_parent"
card_view:cardBackgroundColor="@android:color/white"
card_view:cardUseCompatPadding="true"
card_view:cardElevation="6dp"
card_view:cardCornerRadius="4dp"
android:transitionName="content"
>
<ImageView
android:id="@+id/cardImage"
android:layout_width="100dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:transitionName="image"
/>
<ImageView
android:id="@+id/arrow"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_gravity="right|bottom"/>
<TextView
android:id="@+id/cardtext"
android:layout_gravity="top|left"
android:layout_marginLeft="110dp"
android:textColor="#000"
android:textSize="22sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shadowColor="@android:color/black"
android:fontFamily="sans-serif"
android:elevation="4dp"
android:textStyle="normal|bold"
android:textAllCaps="false" />
<TextView
android:id="@+id/cardtextsubs"
android:text="Hello World"
android:layout_marginLeft="110dp"
android:layout_marginRight="50dp"
android:layout_gravity="bottom"
android:textColor="#000"
android:textSize="13sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shadowColor="@android:color/black"
android:fontFamily="sans-serif"
android:elevation="4dp"
android:textStyle="normal|italic"
android:textAllCaps="false" />
<View
android:id="@+id/dividerLeft"
android:layout_marginLeft="100dp"
android:layout_width="2dp"
android:layout_height="match_parent"
android:elevation="8dp"
android:background="?android:attr/listDivider"/>
</android.support.v7.widget.CardView>
</RelativeLayout>
</android.support.v7.widget.CardView>
</RelativeLayout>
这是因为
card\u视图:cardElevation=“-1dp”
值必须=0
:
cardwiew
方法initialize(上下文上下文、属性集attrs、int defStyleAttr)
中,它调用IMPL.initialize(mCardViewDelegate、上下文、背景色、半径、,
标高,最大标高)代码>
IMPL
如下所示:
static {
if (Build.VERSION.SDK_INT >= 21) {
IMPL = new CardViewApi21();
} else if (Build.VERSION.SDK_INT >= 17) {
IMPL = new CardViewJellybeanMr1();
} else {
IMPL = new CardViewGingerbread();
}
IMPL.initStatic();
}CardViewJellybeanMr1
李>
CardViewJellybeanMr1 35; initialize
中,它调用createBackground-->new RoundRectDrawableWithShadow-->setShadowSize
,这里它说:
if (shadowSize < 0f) {
throw new IllegalArgumentException("Invalid shadow size " + shadowSize +
". Must be >= 0");
}
if(阴影大小<0f){
抛出新的IllegalArgumentException(“无效阴影大小”+阴影大小+
“。必须大于等于0”);
}
shadowSize
与cardElevation
相同,这是因为card\u视图:cardElevation=“-1dp”
值必须=0
:
cardwiew
方法initialize(上下文上下文、属性集attrs、int defStyleAttr)
中,它调用IMPL.initialize(mCardViewDelegate、上下文、背景色、半径、,
标高,最大标高)代码>
IMPL
如下所示:
static {
if (Build.VERSION.SDK_INT >= 21) {
IMPL = new CardViewApi21();
} else if (Build.VERSION.SDK_INT >= 17) {
IMPL = new CardViewJellybeanMr1();
} else {
IMPL = new CardViewGingerbread();
}
IMPL.initStatic();
}CardViewJellybeanMr1
李>
CardViewJellybeanMr1 35; initialize
中,它调用createBackground-->new RoundRectDrawableWithShadow-->setShadowSize
,这里它说:
if (shadowSize < 0f) {
throw new IllegalArgumentException("Invalid shadow size " + shadowSize +
". Must be >= 0");
}
if(阴影大小<0f){
抛出新的IllegalArgumentException(“无效阴影大小”+阴影大小+
“。必须大于等于0”);
}
shadowSize
与cardElevation
相同,您的logcat没有由引起的。寻找原因嘿,这就是我在应用程序崩溃时在堆栈跟踪中得到的所有信息。没有任何原因。嗯,xmlns:card_视图
和xmlns:android
应该仅位于顶层元素,并且通常xmlns:card_视图
被称为xmlns:app
,因为它不特定于CardViewThank。尝试进行这两个xmlns更改。不走运。顺便问一下,你觉得这个渐变色好看吗?这些版本的support library和compileSDK版本应该与API级别19兼容,对吗?如果我没有错的话,它们在API 7之前应该是好的?我知道xmlns不能解决任何问题。我刚从你的例外消息中脱线。我一般不使用加号来表示版本号,只要我能避免,你的logcat没有由
引起的。寻找原因嘿,这就是我在应用程序崩溃时在堆栈跟踪中得到的所有信息。没有任何原因。嗯,xmlns:card_视图
和xmlns:android
应该仅位于顶层元素,并且通常xmlns:card_视图
被称为xmlns:app
,因为它不特定于CardViewThank。尝试进行这两个xmlns更改。不走运。顺便问一下,你觉得这个渐变色好看吗?这些版本的support library和compileSDK版本应该与API级别19兼容,对吗?如果我没有错的话,它们在API 7之前应该是好的?我知道xmlns不能解决任何问题。我刚从你的例外消息中脱线。我一般不会用加号来表示版本号,只要我能避免它,这是一个很好的观察。非常感谢!:)它解决了我的问题。这是我的荣幸。很好的观察。非常感谢!:)它解决了我的问题,这是我的荣幸。