【问题标题】:using android.support.design library in intellij IDEA Ultimate edition在 intellij IDEA Ultimate edition 中使用 android.support.design 库
【发布时间】:2016-05-25 00:36:38
【问题描述】:

我正在使用 IntelliJ IDEA 15 Ultimate edition 开发一个非 gradle android 项目。为了支持库,我将所需的 .jars 复制到 libs 文件夹中,然后将它们作为依赖项添加到我的主模块中。 Google play services、appCompatv7、supportv4 等。这是我的项目结构

由于我想使用坐标布局,我必须使用 android.support.design 库。像往常一样,我从 [sdk]/extras/android/support/design/libs 文件夹中复制了 .jar。但是当我在我的布局 xml 文件中使用 coodrnate 布局(甚至 tabLayout)时,我得到如下渲染错误:

当我按下“清除缓存”时,我收到错误消息,提示未找到 R$attr

我已经敲了 7 到 8 个小时,搜索谷歌和堆栈交换,但所有解决方案都针对 Android Studio 和基于 gradle 的项目。

我的项目结构:

已安装 SDK 工具:

我尝试过的:

  1. 在预览窗口中更改应用主题和版本

  2. 像这样将 android.support.design 作为模块导入到我的项目中 项目结构 -> 模块 -> + -> 导入模块 -> sdk/.../support/design.导入后,我还勾选了“库模块”。导入后的项目结构:

我只想在非 gradle 项目中使用 android.support.design 库

我可以在 IntelliJ 上创建一个 gradle android 项目,但我尽量避免使用 gradle,因为我更喜欢非 gradle 项目。

我现在很沮丧,我想不出我错过了什么或做错了什么(我打赌我是)。我认为设计库的 R.class 没有生成,或者某处缺少一些东西。啊!

对于我的这个问题的任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 你能解释一下为什么你不想要 Gradle 吗?
  • 我觉得使用它不太舒服(不过我知道它很棒)。另外,由于我的项目需要数据库支持(只有 IntellI Ulitmate 可以提供),所以使用 Android Studio 是不可能的。在 IntelliJ 上创建 gradle android 项目与在 AS 上不一样,而且有点古怪。我在 IntellIJ(用于 DB 支持)和 AS(用于更好的 gradle 支持)之间进行了真正的修复。我可以跳过 gradle,但我不能跳过对我的项目的数据库支持。
  • 我将 Intellij 用于我的 Android Gradle 项目。工作正常。 Android Studio 是 Intellij 的一个分支。我还没有找到为 Intellij 花钱的理由,例如 MySQLWorkbench 就是我的数据库工具
  • 如果您是学生(我是),您可以免费获得 IntellJ Ultimate 一年。
  • 去年毕业。我的观点是,您可能不得不硬着头皮切换到 Gradle,因为存在一些工具会使您不这样做的理由无效。您所要做的就是将 Gradle 插件添加到 Intellij 中,Android Studio 团队无论如何都会对此做出贡献,因此说“Android Studio 具有更好的 Gradle 支持”是没有意义的,因为它是同一个 Intellij 插件

标签: android intellij-idea android-gradle-plugin android-support-library android-library


【解决方案1】:

Android 支持库不仅仅包含 Java 代码。它还包含 XML 和图像资源。这些不能单独打包在 JAR 中。如果您坚持不使用 Gradle,则需要将 Android 支持库配置为 IntelliJ IDEA 项目中的模块。一种方法是使用 AAR 文件而不是 JAR 文件。我不知道细节,因为我只是使用 Gradle。它无缝地导入所有资源。这是将您的项目移植到 Gradle 的一个很好的理由。

更新:

由于您已经将 appcompat 库作为模块,因此您不需要任何支持库 JAR 文件。当然,这假设appcompat 模块配置正确。

【讨论】:

  • 我尝试了所有可能的方法(1. .jar only,2. module only,3. .jar+module),当前(.jar+module 工作)。例如。我可以毫无问题地使用 AppcompatActivity。问题是在我的布局 xml 中使用位于 support.design 库中的 android.support.design.CoordinateLayout 文件。顺便说一句,感谢您的宝贵时间。
【解决方案2】:

不仅.jar 文件需要在模块中,资源文件也应该包括在内。 [sdk]/extras/android/support/design 目录还包含一个res 目录、一个AndroidManifest.xml 和一个空的src 目录。将所有这些复制到您的设计模块中。

【讨论】:

    【解决方案3】:

    添加

    <option name="LIBRARY_PROJECT" value="true" />

    在设计模块的design.iml中

    design module .iml file

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2015-04-03
      • 1970-01-01
      • 2022-08-05
      • 2016-10-15
      • 1970-01-01
      • 2020-07-14
      相关资源
      最近更新 更多