【问题标题】:AppCompatTextView could not be instantiatedAppCompatTextView 无法实例化
【发布时间】:2017-09-27 21:57:46
【问题描述】:

我无法弄清楚如何解决此错误。
我尝试使缓存无效/重启,释放磁盘空间并重新安装 Android Studio。

The following classes could not be instantiated:
    - android.support.v7.widget.AppCompatTextView(Open Class, Show Exception, Clear Cache)
Tip: Use View.isInEditMode() in your custom views to skip code or show sample data when shown in the IDE.If this is an unexpected error you can also
try to build the project, then manually refresh the layout.Exception Details java.lang.NullPointerException
    at android.content.res.Resources_Delegate.getValue(Resources_Delegate.java: 788)   
    at android.content.res.Resources.getValue(Resources.java: 1286)   
    at android.support.v4.content.res.ResourcesCompat.loadFont(ResourcesCompat.java: 212)   
    at android.support.v4.content.res.ResourcesCompat.getFont(ResourcesCompat.java: 206)   
    at android.support.v7.widget.TintTypedArray.getFont(TintTypedArray.java:119)   
    at android.support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:208)   
    at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152)   
    at android.support.v7.widget.AppCompatTextHelperV17.loadFromAttributes(AppCompatTextHelperV17.java:38)   
    at android.support.v7.widget.AppCompatTextView. < init > (AppCompatTextView.java:81)   
    at android.support.v7.widget.AppCompatTextView. < init > (AppCompatTextView.java: 71)   
    at java.lang.reflect.Constructor.newInstance(Constructor.java: 423)   
    at android.view.LayoutInflater.onCreateView(LayoutInflater.java:717)   
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:785)   
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)   
    at android.view.LayoutInflater.rInflate_Original(LayoutInflater.java: 858)   
    at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:70)   
    at android.view.LayoutInflater.rInflate(LayoutInflater.java: 834)   
    at android.view.LayoutInflater.inflate(LayoutInflater.java: 492)   
    at com.android.layoutlib.bridge.bars.CustomBar. < init > (CustomBar.java:95)   
    at com.android.layoutlib.bridge.bars.StatusBar. < init > (StatusBar.java: 67)   
    at com.android.layoutlib.bridge.impl.Layout.createStatusBar(Layout.java: 224)   
    at com.android.layoutlib.bridge.impl.Layout. < init > (Layout.java: 146)

【问题讨论】:

  • 您是否将 android.support.v4 和 android.support.v7 添加到您的项目中?
  • 你是否以某种方式扩展了 TextView?
  • 什么是Ehm...?尝试构建项目
  • 如何检查我是否有 android.support.v4 和 v7?是在build.gradle 下吗?
  • 今天与 v7:26.0.1 相同的问题

标签: android


【解决方案1】:

这似乎是一个错误:Preview render problem when adding maven.google.com as a maven repo.

如果在项目级build.gradle中使用了新的maven repo就会触发:

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

不幸的是,自 they are apparently not present in the SDK Manager any more 以来,我们似乎没有最新支持库版本(26 及更高版本)的其他来源:

现在可以通过 Google 的 Maven 获得支持库 存储库。我们不再支持通过 SDK 管理器,该功能将很快被移除。

综上所述,这个问题似乎只影响 Android Studio 中的设计器。即使设计师抱怨,您也应该能够构建和运行应用程序。

您显然无法快速预览布局的 TextView 元素。

最后,设计器预览版在Android Studio v3 中似乎没有这个特定的错误,目前处于测试阶段。因此,您可能想要升级并查看它对您的工作方式。

【讨论】:

  • 是的,这就是布局渲染问题的原因!
  • 我也面临同样的问题。我为此使用了 ad mob 集成,我在 gradle 文件中添加了 maven 行,正如文档中提到的那样。一旦我在 gradle 文件中添加了上面的 maven 代码和依赖项,我就开始面临问题,如果从 gradle 中删除 maven 和广告存储库,它工作正常。如果我想使用 ad mob 依赖怎么办?
  • 我建议在 Android Studio 3 上尝试一下。但是,如果这个问题在 Android Studio 3 中仍然存在,那么请对此发表评论。
【解决方案2】:

参考这个答案here. 将 styles.xml 中的当前主题父主题更新为 Base 主题似乎有效。

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 2016-06-09
    • 2020-10-26
    • 2016-11-22
    • 2016-02-29
    • 2017-01-29
    • 2020-08-30
    • 2011-02-28
    • 2021-11-26
    相关资源
    最近更新 更多