错误:模棱两可的方法调用。 AppCompactActivity和Activity中都为findViewById(int)

问题描述 投票:38回答:14

我收到错误:使用Android Studio 3.0 RC1初始化工具栏时出现“歧义方法调用”。我使用AppCompatActivity扩展了我的Activity,并使用“ compileSdkVersion 26”编译了我的应用程序。附上错误的屏幕截图。enter image description here

android android-studio android-studio-3.0 appcompatactivity android-appcompat
14个回答
37
投票

如果您最近将项目更新为API,请尝试做

文件->使缓存无效/重新启动

然后

文件->使用Gradle文件同步项目

为我解决这个问题。


1
投票

我在Android Studio 3.0.0内部版本171.4408382中遇到了相同的问题。在命令行上通过Gradle进行构建可以很好地工作,但是IDE向我展示了上述错误。我尝试将API级别26与appcompat v26.1.0一起使用,将API级别27与appcompat v27.0.1一起使用,但是两种组合都不起作用。

我的“解决方案”是将compileSdkVersion和targetSdkVersion降级为API级别25,并将appcompat库降级为版本25.4.0。

对于所有上述版本组合,我使用了Gradle插件v3.0.0和Android构建工具v27.0.1。


1
投票

对我来说,compileSdkVersion与所使用的支持库不同


0
投票

如果答案不能解决您的问题,您可以重置android studio。我解决了重置我的Android Studio。重置:https://stackoverflow.com/a/19397632/3129822


0
投票

首先请确保您没有使用较旧的支持库的传递依赖项。运行以下命令,并确保没有使用旧的支持库。

gradlew :app:dependencies

请确保使用最新的依赖项更新了gradle文件。例如:compileSdkVersion 27,targetSdkVersion 27,buildToolsVersion 27.0.3。等等。确保未使用自定义的targetSdkVersion应用程序也将很有帮助。

Ctrl +单击findViewById方法。它将向您显示2个(也许更多?)冲突的方法。在我的情况下,冲突发生在API 23和API 27的findViewById方法之间。因此,我必须删除SDK和Android版本23的源。删除它并执行Invalidate Caches / Restart后,它解决了我的问题。


0
投票

我的compileSDK版本低于targetSDK版本,所以我要做的就是匹配它们并同步项目,并且错误已解决。


8
投票

升级到appcompat 27为我解决了此问题


4
投票

您有

import android.support.v7.app.AppCompatActivity
import android.app.Activity

两者都在您的代码中。如我所见,删除import android.app.Activity,您不需要这样做。


4
投票

对我来说,将构建工具版本更改为27.0.2可以正常工作,因为所有其他依赖项也都是API 27。

buildToolsVersion '27.0.2'

4
投票

我最近升级到了版本27.0.2的构建工具,并且遇到了同样的问题。但是请注意,我将compileSdk版本设置为25。将compileSdk更改为27解决了该问题。


3
投票

“”文件-使缓存无效/重新启动“解决了我的问题。


2
投票

对我来说,给定的解决方案均无效,但是我遇到了这个问题,因为我的计算机上同时安装了25和27个android sdk。一旦我删除了sdk 25,问题就消失了。


2
投票

[运行FindBugs-IDEA之类的代码分析器时,可能会突然出现。清除警告的快速方法是临时更改buildToolsVersion中的app/build.gradle,然后再次将其更改回。

例如,请按照下列步骤操作:

  1. 打开您的app / build.gradle文件。
  2. buildToolsVersion更改为'26.0.1',然后同步项目(在顶部显示时,单击[立即单击立即同步]按钮
  3. buildToolsVersion更改回以前的状态。
  4. 按下“立即同步”按钮

这应该清除错误。


1
投票

也许您在compileSdkVersion和targetSdkVersion之间有区别

© www.soinside.com 2019 - 2024. All rights reserved.