假设 Android 应用程序使用 jar 库,并且当该库被指定为依赖项时一切正常:
dependencies {
...
...
compile 'org.example:example:1.1.1'
...
}
但是:org.example
代码中的一个类需要调整。
一种方法是获取源代码并将所有源代码放入 java
文件夹中,然后删除该模块。当进行调整时,整个库将被编译。
另一种方法是调整、编译并替换 .jar
文件中的 .class
文件。
这两种方法都有其缺点。
我的问题是:是否有更简单的方法来调整库中的代码?
当我尝试创建包,将需要更改的类放入 java
文件夹时,出现错误:
Error converting bytecode to dex: Cause: com.android.dex.DexException: Multiple dex files define Lorg/example/ClassNeedingChange;
我只是想知道是否有一个技巧可以让 Java 文件夹中的代码覆盖库 jar 文件中的内容。
其他信息:
虽然上面没有具体说明,但需要调整的类被隐藏在库中,并由库的代码引用;我不直接调用它。对于需要调整的类是我的代码(并且只有我的代码)直接调用的类的简单情况,那么使用 Java 构造扩展该类将是一件简单的事情。但对于这个简单的情况,我不需要发布这个问题。
最佳答案
扩展需要在代码中调整的类,并重写适当的方法。
Class A extends TweakMe {
@Override
public void someTweakedMethod() {
//Do stuff
}
}
关于java - Android Studio : How to compile with customized class but still use module dependency,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43881348/