在学习《Android第一行代码》的14.5章节深色主题的内容时,该章节是以MaterialTest项目作为示例的,并且在res目录下创建了一个values-29目录,在values-29目录下又创建了一个styles.xml文件。
书上的源码是编写如下代码:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:forceDarkAllowed">true</item>
</style>
</resources>
按照该代码编写以后,重新运行项目,发现报错:
2022-11-17 23:12:15.448 24235-24235/com.example.materialtest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.materialtest, PID: 24235
android.view.InflateException: Binary XML file line #2 in com.example.materialtest:layout/fruit_item: Binary XML file line #2 in com.example.materialtest:layout/fruit_item: Error inflating class com.google.android.material.card.MaterialCardView
Caused by: android.view.InflateException: Binary XML file line #2 in com.example.materialtest:layout/fruit_item: Error inflating class com.google.android.material.card.MaterialCardView
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:852)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:1004)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:959)
at android.view.LayoutInflater.inflate(LayoutInflater.java:657)
at android.view.LayoutInflater.inflate(LayoutInflater.java:532)
at com.example.materialtest.FruitAdapter.onCreateViewHolder(FruitAdapter.kt:22)
at com.example.materialtest.FruitAdapter.onCreateViewHolder(FruitAdapter.kt:13)
at androidx.recyclerview.widget.RecyclerView$Adapter.createViewHolder(RecyclerView.java:7078)
...
即使定位到对应的代码也没发现哪里有错,还以为是之前学习Kotlin的时候写的几个kt文件导致的,删除以后也是一样报错。
当看到书上有一句话:
除了…属性之外,其他的内容都是从之前的styles.xml文件中复制过来的
于是,立马找到res/values/styles.xml文件,打开查看之后发现,AppTheme的parent指定的是Theme.MaterialComponents.Light.NoActionBar
:
<style name="AppTheme" parent="Theme.MaterialComponents.Light.NoActionBar">
...
</style>
回到values-29的styles.xml文件,把parent
属性改过来,重新运行程序,发现界面风格换成了深色主题
原文地址:http://www.cnblogs.com/Icebreaker7/p/16901835.html
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,请务用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员!
8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载
声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性