Есть несколько способов, но они довольно неприятные.
Возможно, «более правильный» подход заключается в том, чтобы использовать пользовательский загрузчик классов - подробности см. В этом ответе. Однако это не совсем просто и может привести к странным результатам.
Более простой, но несколько более неприятный подход - получить исходный код обоих SDK (если он доступен) и переименовать пакеты. Например, если у нас есть sdk_v1 и sdk_v2, мы можем переименовать пакеты в com.example.sdk.v1
и com.example.sdk.v2
. Если нет конфликта имен пакетов, нет проблем с использованием двух разных SDK, даже в одном классе - просто используйте полностью квалифицированный импорт (см ответ ):
com.example.sdk.v1.SomeClass.someFunc()
не будет сталкиваться с com.example.sdk.v2.SomeClass.someFunc()