Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android材质设计-添加样式时出错_Java_Android_Xml_Material Components Android - Fatal编程技术网

Java Android材质设计-添加样式时出错

Java Android材质设计-添加样式时出错,java,android,xml,material-components-android,Java,Android,Xml,Material Components Android,我正试图将样式添加到TextInputLayout中,但当我选择任何类型的样式添加时,我的应用程序崩溃——没有任何样式,它不会崩溃 <com.google.android.material.textfield.TextInputLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="

我正试图将样式添加到
TextInputLayout
中,但当我选择任何类型的样式添加时,我的应用程序崩溃——没有任何样式,它不会崩溃

<com.google.android.material.textfield.TextInputLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        app:passwordToggleEnabled="true"
        style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
        >

        <com.google.android.material.textfield.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:hint="Password"
            android:inputType="textPassword"> 

        </com.google.android.material.textfield.TextInputEditText>

</com.google.android.material.textfield.TextInputLayout>
堆栈跟踪错误:

    E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.halitkalayci.veterinerapp, PID: 4476
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.halitkalayci.veterinerapp/com.halitkalayci.veterinerapp.LoginActivity}: android.view.InflateException: Binary XML file line #37: Binary XML file line #37: Error inflating class <unknown>
        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 #37: Binary XML file line #37: Error inflating class <unknown>
     Caused by: android.view.InflateException: Binary XML file line #37: Error inflating class <unknown>
     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.rInflate(LayoutInflater.java:866)
        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:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.halitkalayci.veterinerapp.LoginActivity.onCreate(LoginActivity.java:18)
        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.MaterialComponents (or a descendant).
        at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:248)
        at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222)
E/AndroidRuntime:     at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:150)
        at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:120)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:424)
        at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:396)
E/AndroidRuntime:致命异常:主
流程:com.halitkalayci.veterinerapp,PID:4476
java.lang.RuntimeException:无法启动活动组件信息{com.halitkalayci.veterinerapp/com.halitkalayci.veterinerapp.LoginActivity}:android.view.InflateException:二进制XML文件行#37:二进制XML文件行#37:膨胀类时出错
位于android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6669)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
原因:android.view.InflateException:二进制XML文件行#37:二进制XML文件行#37:膨胀类时出错
原因:android.view.InflateException:二进制XML文件行#37:膨胀类时出错
原因:java.lang.reflect.InvocationTargetException
位于java.lang.reflect.Constructor.newInstance0(本机方法)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:343)
位于android.view.LayoutInflater.createView(LayoutInflater.java:647)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:863)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:866)
位于android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:824)
在android.view.LayoutInflater.充气(LayoutInflater.java:515)
在android.view.LayoutInflater.充气(LayoutInflater.java:423)
在android.view.LayoutInflater.inflate(LayoutInflater.java:374)
位于androidx.appcompat.app.appcompatedelegateimpl.setContentView(appcompatedelegateimpl.java:555)
位于androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
位于com.halitkalayci.veterinerapp.LoginActivity.onCreate(LoginActivity.java:18)
位于android.app.Activity.performCreate(Activity.java:7136)
位于android.app.Activity.performCreate(Activity.java:7127)
位于android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
在android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
在android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)中
在android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)中
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
位于android.os.Handler.dispatchMessage(Handler.java:106)
位于android.os.Looper.loop(Looper.java:193)
位于android.app.ActivityThread.main(ActivityThread.java:6669)
位于java.lang.reflect.Method.invoke(本机方法)
位于com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
原因:java.lang.IllegalArgumentException:此组件上的样式要求应用程序主题为theme.MaterialComponents(或其后代)。
在com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:248)上
位于com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:222)
E/AndroidRuntime:com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:150)
在com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes上(ThemeEnforcement.java:120)
位于com.google.android.material.textfield.TextInputLayout.(TextInputLayout.java:424)
位于com.google.android.material.textfield.TextInputLayout.(TextInputLayout.java:396)

…30多个

将您的库更新为1.1.0


实现'com.google.android.material:material:1.1.0'

查看堆栈跟踪,可以理解您没有使用material主题:

Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
您可以在
样式中添加/更改
AppTheme
,如下所示:

<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
    <!-- Add attributes here -->
</style>


如果没有堆栈跟踪,很难调试崩溃。请参阅,以获取特定于Android的建议,以及获得堆栈跟踪后的操作建议。如果您仍然需要帮助,请编辑您的问题以包含堆栈跟踪。您的应用程序中有该样式吗?样式应与材质设计一起提供。但是我用stacktrace更新了这个问题。
<style name="AppTheme" parent="Theme.MaterialComponents.DayNight">
    <!-- Add attributes here -->
</style>