【问题标题】:AppCompatActivity is not assignable to ActivityAppCompatActivity 不可分配给 Activity
【发布时间】:2017-10-30 08:56:55
【问题描述】:

经过一年的 android 编码,直到昨天一切正常。今天,我在升级到 gradle 3 alpha 2 和 studio 3 build 2 后发现了一些非常奇怪的东西。

这是一个活动抛出错误的声明:

这是活动代码:

怎么了?

编辑

appcompat 依赖:

  compile 'com.android.support:appcompat-v7:23.2.1'

【问题讨论】:

  • 可能是依赖问题?
  • @JohnJoe 我不这么认为。让我发布依赖项。
  • 为什么要投反对票?这是我面临的一个真正的问题和严重的麻烦
  • 你能运行你的程序并显示完整的错误吗?
  • 就我个人而言,我不会在生产代码中使用预览版和 alpha 版。降级

标签: android android-studio android-activity android-gradle-plugin android-manifest


【解决方案1】:

作为替代方法,您可以简单地将扩展的类更改为 Activity 类而不是 AppCompatActivity

【讨论】:

  • 我这样做了,但这是一种解决方法。我不明白这是为什么。
  • 这只是因为support_v7和普通android应用程序之间的类和主题不同。如果您像这样更改,您还应该更改 style.xml 中的 AppTheme
  • 我将 Theme.AppCompat.Light.DarkActionBar 作为父主题,我认为它与 appcompatactivity 兼容。错了吗?
【解决方案2】:

也许这会有所帮助:

在app build.gradle中,将compileSdkVersion和targetSdkVersion改为25。

同时将appcompat库的版本升级到25.3.1:

compile 'com.android.support:appcompat-v7:25.3.1'

2017 年 5 月 31 日更新:

正如@cricket_007 在 cmets 中向我指出的那样,这不是由 AppCompatActivity 不存在的问题引起的,正如我所推测的那样(在 cmets 中)。

虽然我无法追踪到它,但在 Android Studio 3 Preview 或 3.0.0 alpha2 版本的 Android Gradle 插件、一些构建工具版本(或某处)。

如果您的代码编译正常(尽管 AndroidManifest.xml 中出现“可分配”投诉)并且您想继续使用 Android Studio 3 预览版,那么现在可能值得尝试在该活动标签上禁止“AndroidDomInspection” :

<!--suppress AndroidDomInspection -->
<activity android:name=".admin.AdminChangeCoach">
    . . .
</activity>

但是,FWIW,我也同意@cricket_007 之前的评论:我还没有将 Android Studio 3 用于生产。

【讨论】:

  • 我有其他依赖和更改版本冲突构建。
  • 好的。将 compileSdkVersion 更改为 25 并使用 appcompat 库版本 25.3.1 怎么样?或者,您是说您的 build.gradle 中的其他依赖项需要较早版本的 appcompat?
  • 是的@albert 其他依赖项正在使用导致冲突的早期版本
  • 我相信你面临的一个问题是 AppCompatActivity 是在 24.2.0 版本中添加的(参见developer.android.com/reference/android/support/v7/app/… ),但同时你还需要使用 appcompat 库 23.2 版本.1.
  • @albert 它是随 API 21 发布的,所以页面看起来不对
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-04
  • 1970-01-01
  • 2014-05-07
  • 2017-07-05
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多