Android Studio 3.x: error: cannot find symbol class GlideApp
Android Studio 3.x: error: cannot find symbol class GlideApp
我在上周末将 Android Studio 从 2.x 更新为 3.x。项目迁移非常完美,构建非常棒。现在,从 2 小时开始,我无法解释为什么,我无法构建,我现在在 Glide 上出现此错误:
Error:(26, 22) error: cannot find symbol class GlideApp
之前一切都很好,我什么都没改(gradle或配置),现在出现这个错误...
有关 Glide 的信息,请在我的 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文件是自动生成的(我查过了)
所以,这是一个疯狂的情况。非常感谢你们!
其中一些情况往往会不时弹出(例如生成了 class R
,最终没有生成)。我过去解决这个问题的最简单方法是清理项目并重建它。如果这不起作用,请在顶部菜单中按 File
,然后按 "Invalidate caches and restart"。将出现第二个弹出窗口,按 "Invalidate caches and restart"。这可能需要一段时间,因为 Android Studio 需要重新索引并重建项目,但它解决了我遇到的大多数问题。
Glide 4.x 引入了一些重大变化。请务必遵循 Download & Setup page of Glide docs 中的说明。
不要忽略 proguard.cfg
中的变化。更改后,重新构建您的项目,您应该可以访问 GlideApp
.
当 sub-package 使用 GlideApp 并且 AppGlideModule 在 class 包层次结构的上一级扩展时,我发现了这个问题。
我怀疑编译器在生成 GlipeApp 之前尝试编译 sub-package classes。
我的解决方案是在单独的模块中扩展 AppGlideModule,然后将其作为依赖项添加到所有使用 GlideApp 的模块。
同样的事情发生在我身上,这是我遇到过的最奇怪的错误之一,
我在我的项目中使用了 Butterknife,我发现如果你在私有模式下定义视图,你会得到这个错误
使用:
@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;
这主要发生在 Butterknife 在使用 bindView 或 onClick 注释时找不到视图时,最糟糕的是它会在应该显示错误的地方显示错误。
我 运行 在迁移到 AndroidX 时遇到了同样的问题。我最终通过 adding/updating 对
的依赖解决了它
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'
在我的例子中,我忘记应用 kapt 插件,所以我只是将它添加到我的模块级别 build.gradle
。
apply plugin: 'kotlin-kapt'
您可以找到有关它的更多详细信息 - Glide Docs
像这样添加那些依赖项
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
如果您使用的是 DI,您可以尝试注释掉 GlideApp
错误代码,然后重建。 IDE你应该知道错误的真正所在。
我得到了这个问题的解决方案。
构建 -> 清理项目(之后)重建项目
然后你就可以在你的项目中导入 GlideApp
当您的代码中出现另一个错误时,也会发生这种情况。 Gradle 无法生成 Glide 类 因为在它之前抛出了另一个错误
对我来说,问题是出现了不同的导入错误(这是一个“有效”错误,我确实删除了引用的方法)。
但是因为我在构建应用程序时收到了大约 20 条 GlideApp
无法找到的消息,所以我什至没有注意到有这样的错误。
更正错误并重建项目后,一切又恢复正常了。
生成以下 class 对我有用:
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
// Dummy. Needed to generate GlideApp. See:
// GlideApp.with(service).
}
我在上周末将 Android Studio 从 2.x 更新为 3.x。项目迁移非常完美,构建非常棒。现在,从 2 小时开始,我无法解释为什么,我无法构建,我现在在 Glide 上出现此错误:
Error:(26, 22) error: cannot find symbol class GlideApp
之前一切都很好,我什么都没改(gradle或配置),现在出现这个错误...
有关 Glide 的信息,请在我的 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文件是自动生成的(我查过了)
所以,这是一个疯狂的情况。非常感谢你们!
其中一些情况往往会不时弹出(例如生成了 class R
,最终没有生成)。我过去解决这个问题的最简单方法是清理项目并重建它。如果这不起作用,请在顶部菜单中按 File
,然后按 "Invalidate caches and restart"。将出现第二个弹出窗口,按 "Invalidate caches and restart"。这可能需要一段时间,因为 Android Studio 需要重新索引并重建项目,但它解决了我遇到的大多数问题。
Glide 4.x 引入了一些重大变化。请务必遵循 Download & Setup page of Glide docs 中的说明。
不要忽略 proguard.cfg
中的变化。更改后,重新构建您的项目,您应该可以访问 GlideApp
.
当 sub-package 使用 GlideApp 并且 AppGlideModule 在 class 包层次结构的上一级扩展时,我发现了这个问题。
我怀疑编译器在生成 GlipeApp 之前尝试编译 sub-package classes。
我的解决方案是在单独的模块中扩展 AppGlideModule,然后将其作为依赖项添加到所有使用 GlideApp 的模块。
同样的事情发生在我身上,这是我遇到过的最奇怪的错误之一, 我在我的项目中使用了 Butterknife,我发现如果你在私有模式下定义视图,你会得到这个错误
使用:
@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;
这主要发生在 Butterknife 在使用 bindView 或 onClick 注释时找不到视图时,最糟糕的是它会在应该显示错误的地方显示错误。
我 运行 在迁移到 AndroidX 时遇到了同样的问题。我最终通过 adding/updating 对
的依赖解决了它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'
在我的例子中,我忘记应用 kapt 插件,所以我只是将它添加到我的模块级别 build.gradle
。
apply plugin: 'kotlin-kapt'
您可以找到有关它的更多详细信息 - Glide Docs
像这样添加那些依赖项
implementation 'com.github.bumptech.glide:glide:4.8.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'
如果您使用的是 DI,您可以尝试注释掉 GlideApp
错误代码,然后重建。 IDE你应该知道错误的真正所在。
我得到了这个问题的解决方案。
构建 -> 清理项目(之后)重建项目
然后你就可以在你的项目中导入 GlideApp
当您的代码中出现另一个错误时,也会发生这种情况。 Gradle 无法生成 Glide 类 因为在它之前抛出了另一个错误
对我来说,问题是出现了不同的导入错误(这是一个“有效”错误,我确实删除了引用的方法)。
但是因为我在构建应用程序时收到了大约 20 条 GlideApp
无法找到的消息,所以我什至没有注意到有这样的错误。
更正错误并重建项目后,一切又恢复正常了。
生成以下 class 对我有用:
import com.bumptech.glide.annotation.GlideModule;
import com.bumptech.glide.module.AppGlideModule;
@GlideModule
public final class MyAppGlideModule extends AppGlideModule {
// Dummy. Needed to generate GlideApp. See:
// GlideApp.with(service).
}