首页 > 解决方案 > AndroidModuleModel.findProductFlavor 去哪儿了?我的插件抛出 NoSuchMethodError

问题描述

我是这个构建变体插件的作者,从 Android Studio 4.1 到 4.2.1,我依赖的一个方法似乎已从 IDE API 中删除:ProductFlavorContainer com.android.tools.idea.gradle.project.model.AndroidModuleModel.findProductFlavor(String)

在 IDEA 的 android 插件源代码的 master 分支中,它似乎仍然存在!这里发生了什么?

我得到的具体例外是在这条线上,有这样的文字:

llij.ide.plugins.PluginManager - 'com.android.builder.model.ProductFlavorContainer com.android.tools.idea.gradle.project.model.AndroidModuleModel.findProductFlavor(java.lang.String)' 
java.lang.NoSuchMethodError: 'com.android.builder.model.ProductFlavorContainer com.android.tools.idea.gradle.project.model.AndroidModuleModel.findProductFlavor(java.lang.String)'
at com.nilsenlabs.flavormatrix.actions.AndroidModuleHelper.createMergedDimensionList(AndroidModuleHelper.kt:38)

我的构建环境是 IntelliJ IDEA 社区版 2020.2.4,Build #IC-202.8194.7

最初的目标版本是 Android Studio 版本 193.6911.18

我尝试将目标版本更新为 202.7660.26 (Android Studio 4.2.1) 无济于事

标签: intellij-ideaintellij-pluginandroid-studio-4.2android-studio-plugin

解决方案


方法已被新签名替换:

public IdeProductFlavorContainer findProductFlavor(@NotNull String name) 

当没有为 Android Studio 4.2.x 发布新的 IDEA 目标库时,问题是让 IDEA 解决该类。解决方案:在build.gradle本地安装中使用intellij.localPath而不是intellij.version

感谢 Jetbrains 在此线程中的 Kuznetsov


推荐阅读