如何解决:膨胀类 android.support.v7.widget.CardView 时出错
Posted
技术标签:
【中文标题】如何解决:膨胀类 android.support.v7.widget.CardView 时出错【英文标题】:How to Resolve : Error inflating class android.support.v7.widget.CardView 【发布时间】:2018-09-05 19:47:22 【问题描述】:我对这个错误感到非常沮丧。我完成了我的项目并在我的 android 版本 4.4.2 的设备上运行,它成功运行,然后我成功上传到 Playstore 并再次从 Playstore 安装,它仍然运行良好.....
但是后来我收到了很多朋友的崩溃报告。然后我借了我朋友的Android 6.0.1版本的设备,从Android Studio运行应用程序,在Splashactivity启动后应用程序突然崩溃。 Splashactivity 成功启动,然后在打开 Mainactivity 之前,我使用片段容器加载 5-6 个片段......它崩溃了。
以下是我的错误日志报告
Caused by: android.view.InflateException: Binary XML file line #69: Binary XML file line #69: Error inflating class android.support.v7.widget.CardView
at android.view.LayoutInflater.inflate(LayoutInflater.java:543)
at android.view.LayoutInflater.inflate(LayoutInflater.java:427)
at com.nepalpolice.cdp.main.onCreateView(main.java:69)
这是布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fab="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_>
<ScrollView 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_
android:layout_
tools:context=".main">
<LinearLayout
android:orientation="vertical"
android:background="@drawable/bg"
android:layout_
android:layout_>
<RelativeLayout
android:layout_
android:layout_
android:layout_alignParentTop="true">
<ImageView
android:id="@+id/imageView1"
android:layout_
android:layout_
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:adjustViewBounds="true"
android:src="@drawable/main"
/>
</RelativeLayout>
<View
android:layout_
android:layout_
android:background="#f7f6f3"/>
<View
android:id="@+id/SplitLine_hor1"
android:layout_
android:layout_height= "2dp"
android:background="#C0C0C0" />
<android.support.v7.widget.GridLayout
android:id="@+id/mainGrid"
app:orientation="horizontal"
app:columnCount="2"
android:background="#FEFEFE"
app:rowCount="3"
app:columnOrderPreserved="false"
android:layout_
android:layout_
android:padding="1dp"
>
<!-- Row 1 -->
<!-- Column 1 -->
<android.support.v7.widget.CardView
android:layout_
android:layout_
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
app:cardElevation="8dp"
app:cardCornerRadius="8dp"
android:backgroundTint="@drawable/megaphone"
>
<LinearLayout
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical"
android:layout_
android:layout_>
<ImageView
android:src="@drawable/notices"
android:layout_gravity="center_horizontal"
android:layout_
android:layout_
android:id='@+id/news'/>
<TextView
android:text="News "
android:textAlignment="center"
android:textColor="#0f539c"
android:textSize="18sp"
android:textStyle="bold"
android:layout_
android:layout_ />
</LinearLayout>
</android.support.v7.widget.CardView>
<android.support.v7.widget.CardView
android:layout_
android:layout_
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
app:cardElevation="8dp"
app:cardCornerRadius="8dp"
>
<LinearLayout
android:layout_gravity="center_horizontal|center_vertical"
android:layout_margin="16dp"
android:orientation="vertical"
android:layout_
android:layout_>
<ImageView
android:id='@+id/feeds'
android:src="@drawable/feeds"
android:layout_gravity="center_horizontal"
android:layout_
android:layout_ />
<TextView
android:text="Blog"
android:textAlignment="center"
android:textColor="#0f539c"
android:textSize="18sp"
android:textStyle="bold"
android:layout_
android:layout_ />
</LinearLayout>
</android.support.v7.widget.CardView>
</LinearLayout>
</ScrollView>
</RelativeLayout>
我的构建 gradle 文件是
apply plugin: 'com.android.application'
android
compileSdkVersion 26
buildToolsVersion "26.0.0"
defaultConfig
applicationId "com.nepalpolice.cdp"
minSdkVersion 15
targetSdkVersion 26
versionCode 5
versionName "5.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
dexOptions
jumboMode true
buildTypes
release
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
dependencies
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.google.firebase:firebase-storage:11.8.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
implementation("com.github.bumptech.glide:glide:4.6.1")
exclude group: "com.android.support"
implementation 'com.android.support:appcompat-v7:26.+'
implementation 'com.android.support:support-v4:26.+'
implementation 'com.android.support:cardview-v7:26.+'
implementation 'com.android.support:recyclerview-v7:26.+'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.gms:google-services:3.1.0'
implementation 'com.android.support:design:26.+'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.5.1'
implementation 'com.android.support:gridlayout-v7:26.+'
implementation 'com.github.clans:fab:1.6.2'
testCompile 'junit:junit:4.12'
implementation 'com.google.android.gms:play-services-maps:11.8.0'
implementation 'com.google.firebase:firebase-firestore:11.8.0'
implementation 'id.zelory:compressor:2.1.0'
implementation files('libs/libGoogleAnalyticsServices.jar')
apply plugin: 'com.google.gms.google-services'
图像文件是
我的主要片段是
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState)
View view = inflater.inflate(R.layout.fragment_main, container, false);
news = (ImageView) view.findViewById(R.id.news);
notice = (ImageView) view.findViewById(R.id.notice);
我该如何解决这个问题.....我也关注了许多其他帖子,但它也没有帮助。 在此先感谢
【问题讨论】:
能否请您添加错误 @MohamdAl-Najjar 我在文本和图像文件中都添加了错误...请检查。 测试用例:尝试使用精确版本而不是加号。像 26.0.1 或任何你有的 然后清理重建并运行 尝试使用确切的版本,并将所有implementation
移到滑行之外,并在依赖项关闭花括号后移动这一行 apply plugin: 'com.google.gms.google-services' ,然后尝试重建应用程序
【参考方案1】:
使用
app:backgroundTint="@drawable/megaphone"
不是这个
android:backgroundTint="@drawable/megaphone"
试试这个
<android.support.v7.widget.CardView
android:layout_
android:layout_
app:layout_columnWeight="1"
app:layout_rowWeight="1"
android:layout_marginBottom="0dp"
android:layout_marginLeft="0dp"
android:layout_marginRight="0dp"
app:cardElevation="8dp"
app:cardCornerRadius="8dp"
app:backgroundTint="@drawable/megaphone"
>
【讨论】:
当我按照建议对构建 gradle 文件进行更改并删除 android:BackgroundTint:"drawable/microphon.jpg" 时,它终于解决了问题,但现在我遇到了另一个问题,在我的 4.1 版本的 android 中主要片段看起来像这样ibb.co/nQNo27,但在Android 6.1 版中,卡片视图没有显示,而是像这样ibb.co/ce9e9n。这个怎么解决??? @RishiramRanabhat 检查这个***.com/questions/26728570/… @RishiramRanabhat 检查这个***.com/questions/27599603/…【参考方案2】:您已经在 glide 中实现了所有依赖项。试试下面的gradle
分级:
dependencies
implementation 'com.google.firebase:firebase-auth:11.8.0'
implementation 'com.google.firebase:firebase-storage:11.8.0'
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
implementation fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2',
exclude group: 'com.android.support', module: 'support-annotations'
)
implementation("com.github.bumptech.glide:glide:4.6.1")
exclude group: "com.android.support"
implementation 'com.android.support:appcompat-v7:26.+'
implementation 'com.android.support:support-v4:26.+'
implementation 'com.android.support:cardview-v7:26.+'
implementation 'com.android.support:recyclerview-v7:26.+'
implementation 'com.google.firebase:firebase-messaging:11.8.0'
implementation 'com.google.gms:google-services:3.1.0'
implementation 'com.android.support:design:26.+'
implementation 'de.hdodenhof:circleimageview:2.2.0'
implementation 'com.theartofdev.edmodo:android-image-cropper:2.5.1'
implementation 'com.android.support:gridlayout-v7:26.+'
implementation 'com.github.clans:fab:1.6.2'
testCompile 'junit:junit:4.12'
implementation 'com.google.android.gms:play-services-maps:11.8.0'
implementation 'com.google.firebase:firebase-firestore:11.8.0'
implementation 'id.zelory:compressor:2.1.0'
implementation files('libs/libGoogleAnalyticsServices.jar')
apply plugin: 'com.google.gms.google-services'
【讨论】:
并将这个 26.+ 更改为 26.0.1 当我按照建议对构建 gradle 文件进行更改并删除 android:BackgroundTint:"drawable/microphon.jpg" 时,它终于解决了问题,但现在我遇到了另一个问题,在我的 4.1 版本的 android 中主要片段看起来像这样ibb.co/nQNo27,但在Android 6.1 版中,卡片视图没有显示,而是像这样ibb.co/ce9e9n。这个怎么解决??? 在清单中尝试 【参考方案3】:查看您的xml
代码后,我发现您忘记声明id news
和notice
导致此android.view.InflateException
。
解决方案:将这些字段声明为所需的ImageView
's
【讨论】:
Chirag...对不起,*** cloudn 不允许我发布更多 3000 行代码,所以我只是部分我的 xml 和其余部分是相同的...我已经声明bot 新闻和通知..我仔细检查了我的 xml....但感谢您的友好建议。【参考方案4】:尝试使用app:cardBackgroundColor
而不是,我认为tint
不适用于CardView
或
对于测试问题,尝试用任何颜色替换@drawable/megaphone
,可能是megaphone
内部的问题
【讨论】:
以上是关于如何解决:膨胀类 android.support.v7.widget.CardView 时出错的主要内容,如果未能解决你的问题,请参考以下文章
Android错误膨胀类android.support.constraint.ConstraintLayout
膨胀类 android.support.v7.app.MediaRouteButton 时出错
膨胀类 android.support.v7.widget.RecyclerView(Eclipse) 时出错