【问题标题】:Change code in gradle dependency in runtime在运行时更改 gradle 依赖项中的代码
【发布时间】:2019-11-14 12:05:18
【问题描述】:

我有来自 maven Central 的 gradle 依赖。我需要在这个库中进行相同的更改。我可以手动打开jar库,反编译,编辑,编译(创建fake-android项目以创建.class文件,在jar中发布),添加到项目libs并将其从gradle的依赖中删除,但是它不是用户友好的。是否有可能使更改更容易?

在图书馆我有课

public class BaseWebView extends WebView {
...
}

我需要添加

@Override
public void loadData(String data, String mimeType, String encoding) {
//do same thing with string date
super.loadData(data, mimeType, encoding);
}

【问题讨论】:

  • 我建议提供您的 动态代码块(逻辑),如果可能的话,将运行时从应用程序模块更改为库。
  • @JeelVankhede 完成。您还需要其他信息吗?
  • 我可能误解了一个问题,您是否只有 jar 文件或者您已经有了可以修改的源代码?
  • 我已经遵守jarfile,我修改了什么。
  • 另一种解决方案是在您的项目中使用该 jar 库,现在在您的项目中扩展该库BaseWebView(即类ProjectWebView extends BaseWebView。现在在你的类中覆盖你需要的方法loadData 并编写逻辑。如果您不想要基本方法逻辑,请不要调用 super。现在在项目中使用 ProjectWebView 类而不是 BaseWebView 类。

标签: android gradle android-gradle-plugin build.gradle gradle-plugin


【解决方案1】:

在您的构建脚本中使用此代码(build.gradle root)

subprojects {
  project.configurations.all {
     resolutionStrategy.eachDependency { details ->
        if (details.requested.group == 'com.android.support'
              && !details.requested.name.contains('multidex') ) {
           details.useVersion "version which should be used - in your case 26.0.0-beta2"
        }
     }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-28
    • 1970-01-01
    • 2020-11-14
    相关资源
    最近更新 更多