magicblock-labs / magicblock-labs/Solana.Unity-SDK
Solana conflict with Google Play Games and Google Admob
- Dominant language
- C#
- Stars
- 199
- Forks
- 128
- PR merge metrics
- No merged PRs in 30d
Description
This SDK has a conflict when building for Android while using the Google Play Games plugin and the Google AdMob plugin. The issue occurs when either or both plugins are imported. If I don't import these plugins, the build completes successfully.
Step to reproduce:
1. Start a new project
2. Switch to Android Platform
3. Import from git using "https://github.com/magicblock-labs/Solana.Unity-SDK.git" url.
4. Import Google Play Games Plugin using .unitypackage file
5. Import Google Admob Plugin using .unitypackage file
6. Setup GPG and Admob
7. Run Asset->External Dependency Manager-> Android Resolver -> Force Resolve
8. Build
Version i use:
- Solana SDK: 1.2.7
- Unity: 6000.0.34f1
- Google Play Games: 2.0.0
- Google Admob: 9.5.0
Output:
FAILURE: Build completed with 2 failures.
1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.CheckDuplicatesRunnable
> Duplicate class android.support.customtabs.ICustomTabsCallback found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsCallback$Default found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsCallback$Stub found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsCallback$Stub$Proxy found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsCallback$_Parcel found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsService found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsService$Default found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsService$Stub found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsService$Stub$Proxy found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.ICustomTabsService$_Parcel found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.IPostMessageService found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.IPostMessageService$Default found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.IPostMessageService$Stub found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.IPostMessageService$Stub$Proxy found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.IPostMessageService$_Parcel found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityCallback found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityCallback$Default found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityCallback$Stub found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityCallback$Stub$Proxy found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityCallback$_Parcel found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityService found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityService$Default found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityService$Stub found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityService$Stub$Proxy found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.customtabs.trusted.ITrustedWebActivityService$_Parcel found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class android.support.v4.app.RemoteActionCompatParcelizer found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class android.support.v4.graphics.drawable.IconCompatParcelizer found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class android.support.v4.os.ResultReceiver found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class android.support.v4.os.ResultReceiver$1 found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class android.support.v4.os.ResultReceiver$MyResultReceiver found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class android.support.v4.os.ResultReceiver$MyRunnable found in modules core-1.8.0-runtime (androidx.core:core:1.8.0) and jetified-androidx.core.core-1.8.0-runtime (:androidx.core.core-1.8.0:)
Duplicate class androidx.arch.core.internal.FastSafeIterableMap found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$AscendingIterator found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$DescendingIterator found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$Entry found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$IteratorWithAdditions found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$ListIterator found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.internal.SafeIterableMap$SupportRemove found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.arch.core.util.Function found in modules core-common-2.1.0 (androidx.arch.core:core-common:2.1.0) and jetified-androidx.arch.core.core-common-2.2.0 (androidx.arch.core.core-common-2.2.0.jar)
Duplicate class androidx.browser.browseractions.BrowserActionItem found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter$1 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter$2 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuAdapter$ViewHolderItem found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuDialog found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuDialog$1 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuUi found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuUi$1 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuUi$2 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuUi$3 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuUi$BrowserActionsFallMenuUiListener found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsFallbackMenuView found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsIntent found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsIntent$BrowserActionsFallDialogListener found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsIntent$BrowserActionsItemId found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsIntent$BrowserActionsUrlType found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserActionsIntent$Builder found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserServiceFileProvider found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserServiceFileProvider$1 found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserServiceFileProvider$FileCleanupTask found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.browseractions.BrowserServiceFileProvider$FileSaveTask found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.customtabs.CustomTabColorSchemeParams found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.customtabs.CustomTabColorSchemeParams$Builder found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.customtabs.CustomTabsCallback found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class androidx.browser.customtabs.CustomTabsClient found in modules browser-1.8.0-runtime (androidx.browser:browser:1.8.0) and jetified-androidx.browser.browser-1.5.0-runtime (:androidx.browser.browser-1.5.0:)
Duplicate class and
Please let me know if you need any further information. Thanks
Contributor guide
Research direction
Reproduce the Android build in a new Unity project using Solana.Unity-SDK 1.2.7 with Google Play Games 2.0.0 and Google AdMob 9.5.0. Start with Asset > External Dependency Manager > Android Resolver > Force Resolve and inspect the duplicate-class output. Done means the project builds successfully with either or both plugins imported and without duplicate AndroidX classes.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, csharp, unity
- Domain
- build-system, game-dev, mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100