magicblock-labs / magicblock-labs/Solana.Unity-SDK

Solana conflict with Google Play Games and Google Admob

Open
#243 1 comment 0 reactions 0 assignees View on GitHub
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.