当前位置: 首页 > 知识库问答 >
问题:

此组件上的样式要求您的应用主题为主题。AppCompat

闻人树
2023-03-14

我正在尝试使用这个图书馆https://github.com/jaiselrahman/FilePicker.当我使用以下代码启动活动时,我得到一个异常。

Intent intent = new Intent(getApplicationContext(), FilePickerActivity.class);
                startActivityForResult(intent, FILE_REQUEST_CODE);```

解决此错误的方法是使用以下主题。AppCompat,我已经有了,但仍然得到相同的错误。

 <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.AppCompat">

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.mindedges.beephourly/com.jaiselrahman.filepicker.activity.FilePickerActivity}: android.view.InflateException: Binary XML file line #24: Binary XML file line #24: Error inflating class com.google.android.material.appbar.AppBarLayout
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
                at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
                at android.os.Handler.dispatchMessage(Handler.java:106)
                at android.os.Looper.loop(Looper.java:193)
                at android.app.ActivityThread.main(ActivityThread.java:6669)
                at java.lang.reflect.Method.invoke(Native Method)
                at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
             Caused by: android.view.InflateException: Binary XML file line #24: Binary XML file line #24: Error inflating class com.google.android.material.appbar.AppBarLayout
             Caused by: android.view.InflateException: Binary XML file line #24: Error inflating class com.google.android.material.appbar.AppBarLayout
             Caused by: java.lang.reflect.InvocationTargetException
                at java.lang.reflect.Constructor.newInstance0(Native Method)
                at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
                at android.view.LayoutInflater.createView(LayoutInflater.java:647)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
                at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
                at android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
                at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
                at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:141)
                at com.jaiselrahman.filepicker.activity.FilePickerActivity.onCreate(FilePickerActivity.java:100)
                at android.app.Activity.performCreate(Activity.java:7136)
                at android.app.Activity.performCreate(Activity.java:7127)
                at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
                at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
                at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
                at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
                at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
                at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
                at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
                at android.os.Handler.dispatchMessage(Handler.java:106)
                at android.os.Looper.loop(Looper.java:193)
                at android.app.ActivityThread.main(ActivityThread.java:6669)
                at java.lang.reflect.Method.invoke(Native Method)
                at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
                at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
             Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.AppCompat (or a descendant).
                at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240)
                at com.google.android.material.internal.ThemeEnforcement.checkAppCompatTheme(ThemeEnforcement.java:211)
        2019-12-08 12:48:24.552 26689-26689/com.mindedges.beephourly E/AndroidRuntime:     at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:146)
                at com.google.android.material.internal.ThemeEnforcement.obtainStyledAttributes(ThemeEnforcement.java:78)
                at com.google.android.material.appbar.ViewUtilsLollipop.setStateListAnimatorFromAttrs(ViewUtilsLollipop.java:45)
                at com.google.android.material.appbar.AppBarLayout.<init>(AppBarLayout.java:194)
                at com.google.android.material.appbar.AppBarLayout.<init>(AppBarLayout.java:180)
                    ... 28 more

My module gradle file:

    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 28
        buildToolsVersion '28.0.3'

        defaultConfig {
            applicationId "com.mindedges.beephourly"
            minSdkVersion 23
            targetSdkVersion 28
        }

        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
            }
        }
    }

    dependencies {
        implementation 'androidx.legacy:legacy-support-v4:1.0.0'
        implementation files('libs/AppRate_1.1.jar')
        //implementation 'com.google.android.gms:play-services-ads:17.0.0'
        implementation 'com.github.jayschwa:AndroidSliderPreference:v1.0.1'

        implementation 'com.google.firebase:firebase-core:17.2.1'
        implementation 'com.google.firebase:firebase-ads:17.0.0'
        implementation 'com.google.firebase:firebase-messaging:17.3.3'
        implementation 'com.google.firebase:firebase-iid:17.0.0'

        implementation 'com.android.billingclient:billing:1.2'
        implementation 'androidx.appcompat:appcompat:1.0.0'
        implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
        implementation 'com.codemybrainsout.rating:ratingdialog:1.0.8'


        //implementation 'com.google.android.material:material:1.0.0'
        implementation 'com.google.android.material:material:1.1.0-alpha03'
        implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0'

        implementation 'com.github.jaiselrahman:FilePicker:1.3.0'
        implementation 'com.android.support:multidex:1.0.3'
    }

    apply plugin: 'com.google.gms.google-services'


共有2个答案

司空叶五
2023-03-14

可能您在模块级构建中缺少材料库。格雷德尔

implementation 'com.google.android.material:material:1.1.0-alpha03'

不要将support库与AndroidX混合使用。使用AndroidX版本的multidex

implementation 'androidx.multidex:multidex:2.0.1'
岳奇逸
2023-03-14

问题在这里:

Intent intent = new Intent(getApplicationContext(), FilePickerActivity.class);

您必须将活动作为上下文传递,而不是getApplicationContext()
应用程序上下文没有应用程序主题。

 类似资料:
  • 以下是我的依赖关系 我的布局。xml 上面的代码对我来说工作正常 但是当我更新

  • 我试图做一个MaterialAlertDialog,但无论发生什么,我都会出现以下错误 我使用一个自定义主题作为我的主要活动主题,它是MaterialComponents的父级 将主题更改为AppCompat没有任何帮助,也不是真正正确的做法。我正在按照Material IO的解释进行实施https://material.io/develop/android/components/dialog/

  • 使用AppCompat并使用min sdk版本21,我尝试使用ChipDrawable在TextEdit中的电子邮件地址列表中使用,并且我使用以下方式创建了ChipDrawable: 使用这个xml: 我的主题使用(我还尝试了) 但我总是会犯这样的错误: 我尝试了我在stackoverflow上找到的所有东西,但没有多大帮助。 这是我的风格 这是我的一部分成绩

  • 我在使用TextInputLayout实现材质设计时遇到了问题,我知道解决方案是让您的活动主题继承材质组件主题之一,但这会给我的大多数应用程序主题带来这样的变化,并且需要更多时间来重构它。我想要的是仅针对应用程序上的特定TextInputLayout进行材质设计。 这就是我试过的 错误:

  • 但当我运行:Caused by:java.lang.IllegalStateException时:您需要将一个theme.AppCompat主题(或后代)与此活动一起使用。 我不明白,谢谢^^

  • 尽管我们一直在努力使 Flarum 变得尽可能美丽,但每个社区可能都希望进行一些调整/修改,以适合他们所需的风格。 管理面板 的「外观」页面是开始定制论坛的理想之地。在这里,您可以: 选择主题颜色 切换夜间模式和彩色导航栏。 上传标志和站点图标(浏览器标签中显示的图标)。 在自定义页眉和页脚添加 HTML。 添加 自定义LESS/CSS 来改变元素的显示方式。 CSS 是一种样式表语言,它告诉浏览