java - Android Studio - 在每个应用程序重新编译时重新编译java模块

标签 java android android-studio gradle

在我的 Android Studio 项目中,我添加了一个 java 模块,该模块生成主模块使用的 JAR 文件。我知道 Gradle 会在每个编译过程中重建所有模块,但很明显,如果自上次构建以来没有发生任何更改,则 java 模块不需要它。

所以如果java模块中没有代码更改,我想阻止gradle构建我的jar文件,我找不到这样的选项

感谢任何帮助。

最佳答案

有两个步骤可以实现你想要的:

  1. 要求 Android 插件对库进行预 dex 处理。

所以你在android括号内添加dexOptions

android {
    dexOptions {
        preDexLibraries true
    }
}
  • 另一步是将您的调试版本设置为 minSdkVersion 21,这样系统将构建为多 dex 应用程序,因此不需要将您的 dexed 库合并到APK。
  • 开发页面上有一整节关于它的内容 https://developer.android.com/studio/build/multidex.html#dev-build ,但您想要做的是在 android 括号内添加 productFlavors

    android {
     productFlavors {
            // Define separate dev and prod product flavors.
            dev {
                // dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
                // to pre-dex each module and produce an APK that can be tested on
                // Android Lollipop without time consuming dex merging processes.
                minSdkVersion 21
            }
            prod {
                // The actual minSdkVersion for the application.
                minSdkVersion YOUR_APP_MINIMUM_HERE 
            }
        }
    }
    

    关于java - Android Studio - 在每个应用程序重新编译时重新编译java模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37784628/

    相关文章:

    java - “log4j:configuration” 必须匹配 “(renderer….loggerFactory)?)”

    java - 我们应该向 userFriendlySelector 函数传递哪些参数才能获取流信息

    android - admob:应用程序在 android 3.2 上崩溃

    java - 读取 Parcelable 类的 ArrayList 或 List 时出现问题

    android - 无法将altbeacon库包含到新项目中

    Java - 随机读取行

    java - 如何让不同版本的 JAVA API 协同工作?

    java - 如何在安卓模拟器中使用电脑摄像头

    java - 使用TextureAtlas的LibGdx动画

    java - Android- Dexopt 错误