Android 应用错误:解析 MaterialCardView 失败,需要使用 Theme.MaterialComponents 主题
{
"title": "2023-08-31 13:51:04.135 3084-3221 libEGL com.example.materialtest1 D Emulator has host GPU support, qemu.gles is set to 1.\n2023-08-31 13:51:04.137 3084-3221 libc com.example.materialtest1 W Unable to set property "qemu.gles" to "1": connection failed; errno=13 (Permission denied)\n2023-08-31 13:51:04.147 3084-3221 libEGL com.example.materialtest1 D loaded /vendor/lib/egl/libEGL_emulation.so\n2023-08-31 13:51:04.149 3084-3221 libEGL com.example.materialtest1 D loaded /vendor/lib/egl/libGLESv1_CM_emulation.so\n2023-08-31 13:51:04.153 3084-3221 libEGL com.example.materialtest1 D loaded /vendor/lib/egl/libGLESv2_emulation.so\n2023-08-31 13:51:04.197 3084-3084 AppCompatDelegate com.example.materialtest1 D Checking for metadata for AppLocalesMetadataHolderService : Service not found\n2023-08-31 13:51:04.130 3084-3084 RenderThread com.example.materialtest1 W type=1400 audit(0.0:11): avc: denied { write } for name="property_service" dev="tmpfs" ino=8370 scontext=u:r:untrusted_app:s0:c135,c256,c512,c768 tcontext=u:object_r:property_socket:s0 tclass=sock_file permissive=0\n2023-08-31 13:51:04.413 3084-3084 e.materialtest com.example.materialtest1 W Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (greylist, reflection, allowed)\n2023-08-31 13:51:04.425 3084-3084 e.materialtest com.example.materialtest1 W Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (greylist, reflection, allowed)\n2023-08-31 13:51:04.558 3084-3216 HostConnection com.example.materialtest1 D HostConnection::get() New Host Connection established 0xe7dad3b0, tid 3216\n2023-08-31 13:51:04.559 3084-3216 HostConnection com.example.materialtest1 D HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV420_888_to_NV21 ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_sync_buffer_data GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_2 \n2023-08-31 13:51:04.575 3084-3216 OpenGLRenderer com.example.materialtest1 W Failed to choose config with EGL_SWAP_BEHAVIOR_PRESERVED, retrying without...\n2023-08-31 13:51:04.595 3084-3216 eglCodecCommon com.example.materialtest1 D setVertexArrayObject: set vao to 0 (0) 0 0\n2023-08-31 13:51:04.595 3084-3216 EGL_emulation com.example.materialtest1 D eglCreateContext: 0xf304da60: maj 2 min 0 rcv 2\n2023-08-31 13:51:04.616 3084-3216 EGL_emulation com.example.materialtest1 D eglMakeCurrent: 0xf304da60: ver 2 0 (tinfo 0xc846d0a0)\n2023-08-31 13:51:04.616 3084-3084 AndroidRuntime com.example.materialtest1 D Shutting down VM\n2023-08-31 13:51:04.618 3084-3084 AndroidRuntime com.example.materialtest1 E FATAL EXCEPTION: main\n Process: com.example.materialtest1, PID: 3084\n android.view.InflateException: Binary XML file line #7 in com.example.materialtest1:layout/fruit_item: Binary XML file line #7 in com.example.materialtest1:layout/fruit_item: Error inflating class com.google.android.material.card.MaterialCardView\n Caused by: android.view.InflateException: Binary XML file line #7 in com.example.materialtest1:layout/fruit_item: Error inflating class com.google.android.material.card.MaterialCardView\n Caused by: java.lang.reflect.InvocationTargetException\n \t at java.lang.reflect.Constructor.newInstance0(Native Method)\n \t at java.lang.reflect.Constructor.newInstance(Constructor.java:343)\n \t at android.view.LayoutInflater.createView(LayoutInflater.java:854)\n \t at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1006)\n \t at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:961)\n \t at android.view.LayoutInflater.inflate(LayoutInflater.java:659)\n \t at android.view.LayoutInflater.inflate(LayoutInflater.java:534)\n \t at com.example.materialtest1.FruitAdapter.onCreateViewHolder(FruitAdapter.kt:19)\n \t at com.example.materialtest1.FruitAdapter.onCreateViewHolder(FruitAdapter.kt:12)\n \t at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7719)\n \t at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6804)\n \t at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6688)\n \t at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6684)\n \t at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2362)\n \t at androidx.recyclerview.widget.GridLayoutManager.layoutChunk(GridLayoutManager.java:584)\n \t at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1622)\n \t at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:687)\n \t at androidx.recyclerview.widget.GridLayoutManager.onLayoutChildren(GridLayoutManager.java:182)\n \t at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4604)\n \t at androidx.recyclerview.widget.RecyclerView.dispatchLayout(RecyclerView.java:4307)\n \t at androidx.recyclerview.widget.RecyclerView.onLayout(RecyclerView.java:4873)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at androidx.coordinatorlayout.widget.CoordinatorLayout.layoutChild(CoordinatorLayout.java:1213)\n \t at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayoutChild(CoordinatorLayout.java:899)\n \t at com.google.android.material.appbar.ViewOffsetBehavior.layoutChild(ViewOffsetBehavior.java:66)\n \t at com.google.android.material.appbar.HeaderScrollingViewBehavior.layoutChild(HeaderScrollingViewBehavior.java:153)\n \t at com.google.android.material.appbar.ViewOffsetBehavior.onLayoutChild(ViewOffsetBehavior.java:43)\n \t at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onLayoutChild(AppBarLayout.java:2376)\n \t at androidx.coordinatorlayout.widget.CoordinatorLayout.onLayout(CoordinatorLayout.java:918)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\n \t at android.widget.FrameLayout.onLayout(FrameLayout.java:270)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)\n \t at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)\n \t at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n2023-08-31 13:51:04.619 3084-3084 AndroidRuntime com.example.materialtest1 E \t at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\n \t at android.widget.FrameLayout.onLayout(FrameLayout.java:270)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1829)\n \t at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1673)\n \t at android.widget.LinearLayout.onLayout(LinearLayout.java:1582)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at android.widget.FrameLayout.layoutChildren(FrameLayout.java:332)\n \t at android.widget.FrameLayout.onLayout(FrameLayout.java:270)\n \t at com.android.internal.policy.DecorView.onLayout(DecorView.java:779)\n \t at android.view.View.layout(View.java:21912)\n \t at android.view.ViewGroup.layout(ViewGroup.java:6260)\n \t at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:3080)\n \t at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2590)\n \t at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1721)\n \t at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7598)\n \t at android.view.Choreographer$CallbackRecord.run(Choreographer.java:966)\n \t at android.view.Choreographer.doCallbacks(Choreographer.java:790)\n \t at android.view.Choreographer.doFrame(Choreographer.java:725)\n \t at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:951)\n \t at android.os.Handler.handleCallback(Handler.java:883)\n \t at android.os.Handler.dispatchMessage(Handler.java:100)\n \t at android.os.Looper.loop(Looper.java:214)\n \t at android.app.ActivityThread.main(ActivityThread.java:7356)\n \t at java.lang.reflect.Method.invoke(Native Method)\n \t at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)\n \t at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)\n Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).\n \t at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:247)\n \t at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:216)\n \t at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:144)\n \t at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:76)\n \t at com.google.android.material.card.MaterialCardView.com.google.android.material.card.MaterialCardView,并提示需要使用Theme.MaterialComponents或其子主题。
要解决这个问题,你可以尝试以下步骤:
-
在你的
styles.xml文件中,确保你的应用主题是继承自Theme.MaterialComponents或其子主题。例如:<style name="AppTheme" parent="Theme.MaterialComponents.Light"> <!-- 其他样式 --> </style> -
确保你已经正确导入了
com.google.android.material.card.MaterialCardView库。在你的build.gradle文件中添加以下依赖项:implementation 'com.google.android.material:material:1.4.0'并同步你的项目。
-
如果你已经正确导入了
com.google.android.material.card.MaterialCardView库,但仍然出现问题,则可能是由于版本不兼容导致的。你可以尝试更新库的版本,或者查看官方文档以获取更多关于库的使用和兼容性的信息。
希望这些步骤能够帮助你解决问题。如果问题仍然存在,请提供更多的代码和相关信息,以便我们能够更好地帮助你解决问题。
原文地址: https://www.cveoy.top/t/topic/qAap 著作权归作者所有。请勿转载和采集!