美文网首页
flutter项目中不能同时开发dart和Java的问题

flutter项目中不能同时开发dart和Java的问题

作者: 碧桃鹦鹉 | 来源:发表于2020-06-19 15:01 被阅读0次

    在用Android Studio开发flutter项目。用AS正常创建完一个flutter项目之后应该是能在一个窗口下同时开发dart和Java的。但是经过了半个多月的开发,不知道什么时候这个项目变成了只能开发dart,目录下的android文件夹内的文件不再被认为是Class文件。而且我和另一位前端人员共同开发,他用的是visual stuido,推测可能和不同编译器的配置有关。但是也还好,需求上暂时还没有要用到同时开发dart和android原生代码。

    最近的需求需要写一写android原生代码,这个问题又得重新重视起来。开始着手研究这个事。
    我认为,刚刚创建一个flutter项目时,AS是认定这个项目还是一个AS项目,只是使用了dart和flutter的插件,也就是java为主,dart为辅的一个项目。但是由于某种原因或者配置,AS认为这个项目是一个纯dart项目。我又新建了一个flutter项目,来和现有项目对比文件的差异,看看到底是哪里影响了这个问题。
    经过对比,发现在flutter目录下没有iml文件,android目录下也有,.idea文件夹下也有一个iml文件。反复修改了各个iml文件的内容,删除了idea下的iml文件之后,导致整个项目代码不能识别了!非常恐慌。后来继续找有差异的文件,找到.idea目录下的modules.xml文件,找到了关键的差异:

    <?xml version="1.0" encoding="UTF-8"?>
    <project version="4">
    <component name="ProjectModuleManager">
    <modules>
    <module fileurl="file://PROJECT_DIR/xxxxxx.iml" filepath="PROJECT_DIR/xxxxxx.iml" />
    <module fileurl="file://PROJECT_DIR/android/xxxxxx_android.iml" filepath="PROJECT_DIR/android/xxxxxx_android.iml" />
    </modules>
    </component>
    </project>

    都知道iml文件是项目的一些描述信息,模块信息记录,所以这个module文件是记录了要去查看哪些iml文件的文件。索引的索引。
    所以改了这个modules文件,指向了android目录下的iml和flutter目录下的iml,重新打开这个项目,就恢复了可以同时编译Java和dart的状态了。
    其实也是从来没去研究过项目的文件结构,代码的构建方式等等知识,对这些东西不了解。平时创建项目这些东西都是自动配置的,很少出问题,也就是遇到了问题才回去研究这块的知识。

    后来又发现虽然能识别了java文件,但是android代码里不能识别flutter的库,经对比是.idea文件夹下的libraries文件夹下对库的描述文件缺失,补上之后就可以完整的同时开发android代码和dart代码了。

    相关文章

      网友评论

          本文标题:flutter项目中不能同时开发dart和Java的问题

          本文链接:https://www.haomeiwen.com/subject/nsvvxktx.html