以下类无法实例化:android.support.v7.widget.AppCompatTextView

12

这是我在 build.gradle(app) 中的依赖项:

compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', 
{
    exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.firebaseui:firebase-ui-auth:2.3.0'
compile 'com.android.support:appcompat-v7:26.0.1'
compile 'com.android.support:design:26.0.1'
compile 'com.android.support:support-vector-drawable:26.0.1'
compile 'com.android.support.constraint:constraint-layout:1.0.2'
testCompile 'junit:junit:4.12'

这是build.gradle(Project)的一部分:

allprojects {
    repositories {
        jcenter()
        maven { url "https://maven.google.com" }
    }
}

当我打开任何xml文件时,它会显示错误信息“以下类无法实例化:”

android.support.v7.widget.AppCompatTextView(打开类,显示异常,清除缓存)**

我已经将Android Studio更新到最新版本,但仍显示错误信息。

我无法找出问题所在。谢谢。


你尝试过清理项目吗?有时候这是由于AS突然关闭而导致的问题。 - Umar Hussain
尝试通过以下方式使缓存失效:https://dev59.com/9F8d5IYBdhLWcg3wpzn4#29921076 - Umar Hussain
我清理并重新构建了项目,并多次使缓存失效。 - Eco4ndly
一切都很顺利,直到我使用了“26.0.0-alpha1”。当我将版本更改为“26.0.1”时,问题就出现了。 - Eco4ndly
在我的问题中出现了相同的错误。 - Lalit Fauzdar
显示剩余2条评论
7个回答

26

编辑

每当您添加maven仓库时,就会出现此问题。
请参见我朋友在这里提出的同样错误,由于某些原因我无法询问他。

可以通过更改res -> values -> Styles.xml中的AppTheme来解决此问题。 从中更改您的主题。

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

需要翻译的内容为 "to"。
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

它解决了我的问题,别忘了实际答案


是的。我已经更改为26.0.0-alpha1,问题已解决,但是当我尝试使用Firebase UI库时,需要使用26.0.1版本。如何使用26.0.1版本? - Eco4ndly
Base 中的 NoActionBar 怎么办?Theme.AppCompat.NoActionBar 的替代方案是什么? - Mario Velasco
@MarioVelasco,你可以使用这个主题,因为不使用操作栏并不是强制性的,即使我没有操作栏,但我仍然在使用它...它不会引起任何冲突。 - Lalit Fauzdar
@LalitSinghFauzdar 即使是一个空的 XML,也会创建一个 ActionBar 主题。 - Mario Velasco
1
我使用了Base主题,结合<item name="windowActionBar">false</item><item name="windowNoTitle">true</item>,以便获得一个没有ActionBar的活动。 - Mario Velasco
显示剩余3条评论

4

在使用Theme.AppCompat.NoActionBar时,我遇到了同样的错误。

<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">

我使用替换后,它可以正常工作。
<style name="AppTheme" parent="Base.Theme.AppCompat">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>

谢谢你。我正在阅读《Head First Android Development A Brain-Friendly Guide》这本书,这是互联网上唯一的好解决方案。 - Dime

3
如果你遇到下面粘贴的这些错误之一,可能需要审查styles.xml文件中的设置。我在将buildToolsVersion '23.0.0'替换为buildToolsVersion '26.0.2'后,在build.gradle文件中更改生成工具后,遇到了这个问题。
为了解决问题,请检查是否有类似以下行: <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 如果有,请加上Base前缀,例如在我的情况下,我从以下内容更改: <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 变成了: <style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar"> 然后一切正常了。
以下类无法实例化:
- android.support.v7.widget.AppCompatImageView (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.AppCompatButton (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.Toolbar (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.AppCompatEditText (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.AppCompatTextView (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.ActionBarContextView (Open Class, Show Exception, Clear Cache)

- android.support.v7.app.WindowDecorActionBar (Open Class, Show Exception, Clear Cache)

- android.support.v7.widget.ActionBarOverlayLayout (Open Class, Show Exception, Clear Cache)

3

0

我曾经有一个硬编码的颜色值,但是在移除它之后一切都正常了。


0
请在res -> values -> Styles.xml中更改主题样式。
从:<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 到:<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">

-1
可以通过更改 res-> values-> Styles.xml 中的 AppTheme 来解决此问题,更改您的主题从
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">

<style name="AppTheme" parent="Base.Theme.AppCompat">

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接