【问题标题】:How to use square dagger-compiler for "compile-only" using gradle?如何使用方匕首编译器使用 gradle 进行“仅编译”?
【发布时间】:2014-06-10 18:56:48
【问题描述】:

目前我的匕首依赖项声明如下:

compile 'com.squareup.dagger:dagger:1.2.1'
compile 'com.squareup.dagger:dagger-compiler:1.2.1'

我不希望将 dagger-compiler 包含到我的 Android apk 中,因为它还添加了 Guava 依赖项,它很大并且打破了我们应用程序的 Android 65K 限制。

我看到在 maven 项目中将 dagger-compiler 添加为“已提供”,但我没有为 gradle android build 找到类似的东西。

【问题讨论】:

    标签: android-gradle-plugin dagger


    【解决方案1】:

    存在provided关键字:

    compile 'com.squareup.dagger:dagger:1.2.1'
    provided 'com.squareup.dagger:dagger-compiler:1.2.1'
    

    这是一个示例 build.gradle:volley-examples

    【讨论】:

    • 如果我使用此解决方案,我仍然会收到 runteimeException:原因:java.lang.IllegalStateException:无法加载类 com.example.testapp.MainModule 的模块适配器。请确保已为此模块运行代码生成。我无法让它运行。 AS 0.9.2 安卓插件 0.14.1
    • 您的一个依赖项可能会干扰 Dagger 代码生成。过去我也遇到过这种情况。
    【解决方案2】:

    Android-Gradle/Android Studio 支持提供的范围。您可以通过 UI 中的 Project Structure > Dependencies 来获取它,或者如果您想手动编辑它们,可以在构建文件中使用 provided 关键字而不是 compile

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 2010-11-19
      • 2016-03-23
      • 2022-06-29
      • 2015-10-29
      • 2015-12-25
      相关资源
      最近更新 更多