Java Android-不同SDK中的多个Gson LIB

Java Android-不同SDK中的多个Gson LIB,java,android,reflection,sdk,Java,Android,Reflection,Sdk,我们在应用程序中使用了两个SDK,其中一些具有Google Gson库,但在不同的包中,例如thirdpartylib.Gson.Gson、thirdpartylibsecond.Gson.Gson等。。。。我们也使用com.google.gson.*软件包,但问题是:有没有办法使用其他SDK中的一个gson而不是我们的?主要原因是减少方法ID的数量 我们正在考虑使用反射,例如: 1) 为Gson创建存根类,并在应用程序->GsonStub中的任何地方使用它 2) 检查是否有其他Gson可用:

我们在应用程序中使用了两个SDK,其中一些具有Google Gson库,但在不同的包中,例如thirdpartylib.Gson.Gson、thirdpartylibsecond.Gson.Gson等。。。。我们也使用com.google.gson.*软件包,但问题是:有没有办法使用其他SDK中的一个gson而不是我们的?主要原因是减少方法ID的数量

我们正在考虑使用反射,例如:

1) 为Gson创建存根类,并在应用程序->GsonStub中的任何地方使用它

2) 检查是否有其他Gson可用:
Class cl=Class.forName(“”)

3) 然后在我们的GsonStub中使用方法委派:
cl.getDeclaredMethod()

但问题是,我们的另一个第三方库使用com.google.gson.gson作为参数。此外,在这个实现中,每次调用Gson方法都会因为反射而花费额外的资源


有人有过这个“问题”的经验吗?将相同数量的Gson LIB与大约900个方法ID链接起来似乎是无效的。

@Selvin感谢您的回复,但我不确定这会有什么帮助。此外,我们也是第三方库,这意味着我们的应用程序/库可以有人集成,但他已经可以有其他SDK与GSON。因此,我想检查classpath是否还有其他的impl-of-gson并使用其中一个。我正在考虑将
xxxx.gson.
重命名/重新打包到
com.google.gson.*
和(jarjar)这两个第三方库中,并从中删除实现(gradle?dependecies exclude?)。。。然后根据新的依赖项进行编译。。。如果您很幸运,并且使用过的gson库的版本是兼容的,那么在“发布”之前这样做会很好,但不幸的是,正如我提到的,我需要在运行时这样做(或者在运行时选择一个gson实例)。接下来,Gsons的版本可能略有不同(取决于第三方SDK的Gson库)。