【问题标题】:Android - Replace lib jar with gradle jarAndroid - 用 gradle jar 替换 lib jar
【发布时间】:2019-09-26 11:12:42
【问题描述】:

我的 android 项目文件夹 (/libs/gson2.2.4.jar) 中有 gson2.2.4.jar,改造与此冲突。为此,我必须使用 gson 2.8.5 版本。我无法删除 lib/gson2.2.4.jar,因为它是通过构建工具复制的。有没有用 gradle 条目覆盖这个 libs 文件夹版本?

谢谢

【问题讨论】:

  • libs目录下还有其他jar文件吗?

标签: android android-gradle-plugin gson retrofit


【解决方案1】:

也许你应该像下面这样排除:

compile fileTree(dir: 'libs', excludes: ['gson2.2.4.jar'], include: '*.jar')

【讨论】:

    【解决方案2】:

    首先删除你的gson2.2.4.jar。

    如果您不能这样做,请按照以下步骤操作。

    1. 从项目目录中删除 .gradle.idea 文件夹
    2. 在项目的app 目录中删除build 目录。
    3. 现在删除你的 gson2.2.4.jar
    4. 然后同步你的项目
    5. 为 retrofit2 添加以下依赖项
      implementation 'com.squareup.retrofit2:retrofit:2.6.0'
      implementation 'com.squareup.retrofit2:converter-gson:2.6.0'
      implementation 'com.squareup.okhttp3:logging-interceptor:3.12.1'
      implementation 'com.google.code.gson:gson:2.8.5' 
    
    Hope this will helps you.
    

    【讨论】:

    • 我无法从库文件夹中删除 gson 库。由于我没有任何控制权的构建工具,它将再次被复制。
    • 只需关闭项目并重新启动工作室。一旦打开直接删除那个.jar
    • 它是跨平台工具,不是android studio或eclipse。即使我删除了这个文件,它也会在构建 apk 时再次被复制。
    • 哦。你在这里没有提到。根据你的问题,我的回答是对的。能否请您欣赏一下
    • 感谢您的宝贵时间和帮助。但是我在问题中提到我无法从 lib 文件夹中删除该文件,因为它是通过构建工具复制的。无论如何,感谢您的帮助。
    【解决方案3】:

    您需要访问添加 lib/gson2.2.4 的构建工具代码并删除添加该库的逻辑。如果您无权访问或无法询问有权访问的人,那么您可以做的是避免 gson 进行改造。

    您可以使用以下代码来做到这一点:

    implementation('com.squareup.retrofit2:retrofit:x.x.x') {
    
        exclude module: 'gson'
    }
    

    如果应用旧版本的库不会导致 Retrofit 或您的实现出现任何问题,您需要彻底检查您的代码。

    【讨论】:

      猜你喜欢
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 2013-10-18
      • 2014-10-02
      • 1970-01-01
      • 2015-11-09
      • 1970-01-01
      • 2017-03-09
      相关资源
      最近更新 更多