我有三个android studio项目:


(路径)\ LibAddressLookup
(路径)\ App_A
(路径)\ App_B


App_A和App_B都依赖LibAddressLookup并在其设置/等级中具有对它的引用:

include ':app'
include ':LibAddressLookup'
project(':LibAddressLookup').projectDir = new File(settingsDir, '../LibAddressLookup/app')


App_A具有大约14种不同的构建风味,App_B仅具有一种

尝试将App_B加载到Android Studio中时,gradle构建失败。在我的“ Build Variants”窗​​口中,我看到模块“ app”具有App_A的风味/构建配置组合。当我去编辑口味时,我会列出App_A中的所有口味。如果尝试编辑(删除)这些样式,则会收到一条错误消息,提示该build.grade不属于该项目,然后列出App_A的build.grade的位置,如图所示:

android - Android Studio从错误的项目引用了build.gradle-LMLPHP

在Android Studio的“ Android”视图中,我看到有两个build.gradle显示为属于“模块”应用程序,如图所示:

android - Android Studio从错误的项目引用了build.gradle-LMLPHP

查看文件时,一个确实是来自App_A的文件,而另一个是来自App_B的正确文件。我找不到任何从项目中删除此文件的方法。在新目录中创建项目的新副本会导致相同的问题重复发生。我如何摆脱不正确的build.grade,并允许自己继续使用App_B?

最佳答案

好的,我已经找到了解决方案,但是我暂时搁置了这个问题,以防万一有人可以启发我有关这可能是怎么发生的,所以我可以防止它再次发生。

在文件(path)\ App_B.idea \ workspace.xml中是以下条目:

<component name="ExternalProjectsData">
    <projectState path="$PROJECT_DIR$/../App_A">
      <ProjectState />
    </projectState>
    <projectState path="$PROJECT_DIR$">
      <ProjectState />
    </projectState>
</component>


在删除了第一个projectState子条目(引用App_A),重新打开Android Studio,清理项目,再次退出,重新启动并再次清理之后,Android Studio终于准备接受App_A确实与App_B无关。

10-07 19:35
查看更多