web-dev-qa-db-ja.com

エラー:あいまいなメソッド呼び出し。 AppCompactActivityおよびActivityのfindViewById(int)の両方

Android St​​udio 3.0 RC1を使用してツールバーを初期化すると、「あいまいなメソッド呼び出し」というエラーが表示されます。 AppCompatActivityでアクティビティを拡張し、「compileSdkVersion 26」を使用してアプリケーションをコンパイルしました。エラーのスクリーンショットを添付します。 enter image description here

36
Sumit T

プロジェクトを最近APIに更新した場合は、次を実行してください。

ファイル->キャッシュの無効化/再起動

それから

ファイル-> Gradleファイルとプロジェクトを同期

これは私のために解決します。

33
Upendra Shah

Appcompat 27へのアップグレードでこれが解決しました

7
asperon

最近、ツールバージョン27.0.2をビルドするためにアップグレードしましたが、同じ問題に直面しました。しかし、compileSdkのバージョンが25に設定されていることに気付きました。compileSdkを27に変更すると、問題は解決しました。

4
deepdroid

あなたが持っている

import Android.support.v7.app.AppCompatActivity
import Android.app.Activity

あなたのコードの両方。 import Android.app.Activityを削除してください。これは必要ではありません。

4
Northern Poet

私にとっては、ビルドツールのバージョンを27.0.2に変更しても機能しました。他の依存関係もすべてAPI 27であるためです。

buildToolsVersion '27.0.2'
4
Pikachu

「ファイル-キャッシュの無効化/再起動」私の問題を解決しました。

3
Stanley Kou

FindBugs-IDEA のようなコードアナライザーを実行すると、これが突然表示されることがあります。警告をクリアする簡単な方法は、app/build.gradlebuildToolsVersionを一時的に変更してから、再度変更することです。

たとえば、次の手順を実行します。

  1. app/build.gradleファイルを開きます。
  2. buildToolsVersion'26.0.1'に変更し、プロジェクトを同期します(上部に表示されたら[今すぐ同期]ボタンを押します
  3. buildToolsVersionを以前のものに戻します。
  4. 「今すぐ同期」ボタンを押します

これでエラーがクリアされます。

2
Mr-IDE

私にとって、与えられたソリューションはどれも機能しませんでしたが、25と27の両方のAndroid sdkがコンピューターにインストールされていたため、この問題が発生しました。 SDK 25を削除するとすぐに、問題はなくなりました。

2
Moussa

Android St​​udio 3.0.0ビルド171.4408382で同じ問題が発生しました。コマンドラインでGradleを介してビルドすることはうまくいきましたが、IDEは上記のエラーを示しました。 appcompat v26.1.0ではAPIレベル26を使用し、appcompat v27.0.1ではAPIレベル27を使用しようとしましたが、どちらの組み合わせも機能しませんでした。

私の「解決策」は、compileSdkVersionとtargetSdkVersionをAPIレベル25に、appcompatライブラリをバージョン25.4.0にダウングレードすることでした。

上記のすべてのバージョンの組み合わせで、Gradleプラグインv3.0.0とAndroidビルドツールv27.0.1を使用しました。

1
paprika

CompileSdkVersionとtargetSdkVersionに違いがあるかもしれません

1
Satria Akbar

私にとっては、compileSdkVersionであり、使用されているサポートライブラリとは異なりました。

0
hiddeneyes02

まず、古いサポートライブラリを使用している推移的な依存関係がないことを確認します。次のコマンドを実行し、古いサポートライブラリが使用されていないことを確認します。

gradlew :app:dependencies

Gradleファイルが最新の依存関係で更新されていることを確認してください。例:compileSdkVersion 27、targetSdkVersion 27、buildToolsVersion 27.0.3。など。アプリのフレーバーがカスタムtargetSdkVersionを使用していないことを確認することも有益です。

Ctrlキーを押しながらfindViewByIdメソッドをクリックします。 2つの(おそらくそれ以上の)競合するメソッドが表示されます。私の場合、競合はAPI 23のfindViewByIdメソッドとAPI 27の間で発生しました。したがって、SDKとAndroidバージョン23のソースを削除する必要がありました。問題。

0
Randev

回答で問題が解決しない場合は、Androidスタジオをリセットできます。 Androidスタジオをリセットして解決しました。リセットの場合: https://stackoverflow.com/a/19397632/3129822

0
Ferhat KOÇER