先週の終わりにAndroid Studioを2.xから3.xに更新しました。プロジェクトの移行は完璧で、ビルドは素晴らしかったです。そして今、2時間から、理由を説明できません。私はビルドできません。Glideでこのエラーが発生しました:
エラー:(26、22)エラー:シンボルクラスGlideAppが見つかりません
以前はすべて良かったですが、私は何も変更しませんでした(gradleまたはconfiguration)、そして今度はこのエラーが表示されます...
グライドについての情報は、私のGradleで:
annotationProcessor 'com.github.bumptech.glide:compiler:4.0.0-RC1'
compile 'com.github.bumptech.glide:glide:4.0.0-RC1'
compile 'com.github.bumptech.glide:okhttp3-integration:4.0.0-RC1'
GlideAppファイルは自動的に生成されます(チェックしました)。
だから、それはクレイジーな状況です。みんなありがとう!
これらの状況の中には、時々ポップアップする傾向があります(生成されたクラスR
のインスタンスの場合、最終的には生成されません)。過去にこれを解決した最も簡単な方法は、プロジェクトをクリーンアップして再ビルドすることです。それでもうまくいかない場合は、トップメニューのFile
を押し、[キャッシュを無効にして再起動]を押します。 2番目のポップアップが表示されたら、[キャッシュを無効にして再起動]をクリックします。 Android Studioはプロジェクトのインデックスを再作成して再構築する必要があるため、しばらく時間がかかる場合がありますが、これにより、私が抱えていたほとんどの問題が解決されます。
同じことが私にも起こり、私が今までに得た最も奇妙なエラーの1つでした。私はプロジェクトでバターナイフを使用しましたが、プライベートモードでビューを定義すると、このエラーが発生することがわかりました
使用する:
@BindView(R.id.tv_option_one)
TextView tv_option_one;
@BindView(R.id.tv_option_two)
TextView tv_option_two;
の代わりに
@BindView(R.id.tv_option_one)
private TextView tv_option_one;
@BindView(R.id.tv_option_two)
private TextView tv_option_two;
bindViewまたはonClickアノテーションを使用するときにButterknifeがビューを見つけられない場合にほとんど発生します。最悪の部分は、本来あるべき場所以外のすべての場所にエラーが表示されることです。
AndroidXに移行したときにも同じ問題が発生しました。依存関係を追加/更新して解決しました
implementation 'com.github.bumptech.glide:glide:4.8.0-SNAPSHOT'
kapt 'com.github.bumptech.glide:compiler:4.8.0-SNAPSHOT'
kapt 'androidx.annotation:annotation:1.0.0-rc01'
Glide 4.xでは、いくつかの重大な変更が導入されています。 Glide docsのダウンロード&セットアップページ の指示に従ってください。 proguard.cfg
の変更を無視しないでください。変更後、プロジェクトを再ビルドすると、GlideApp
にアクセスできるはずです。
そのような依存関係を追加します
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
私の場合、kaptプラグインを適用するのを忘れていたので、モジュールレベルbuild.gradle
に追加しました。
apply plugin: 'kotlin-kapt'
詳細については、こちらをご覧ください- Glide Docs
DIを使用している場合は、GlideApp
エラーコードをコメントアウトしてから再構築できます。 IDEエラーが実際にどこにあるか。
サブパッケージがGlideAppを使用しており、AppGlideModuleがパッケージ階層の1レベル上のクラスで拡張されている場合に、この問題を見つけました。
コンパイラがGlipeAppを生成する前にサブパッケージクラスをコンパイルしようとしているのではないかと思います。
私の解決策は、別のモジュールでAppGlideModuleを拡張し、GlideAppを使用してすべてのモジュールへの依存関係として追加することでした。
Build.gradle(アプリ)に依存関係を追加する
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
コードでGlideAppの代わりにGlideを使用する
Glide.with(context).load("http://image_url").into(imageView);
URLからアクセスしている場合は、Manifest.xmlでインターネット権限があることを確認してください。