Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. We have updated the language to the Editor Terms based on feedback from our employees and community. Learn more.
    Dismiss Notice
  3. Join us on November 16th, 2023, between 1 pm and 9 pm CET for Ask the Experts Online on Discord and on Unity Discussions.
    Dismiss Notice

[Solved] Adding in-app unity service to a game already including admob causes error

Discussion in 'Unity IAP' started by a-tauzzi, Dec 21, 2015.

Thread Status:
Not open for further replies.
  1. a-tauzzi

    a-tauzzi

    Joined:
    Dec 20, 2015
    Posts:
    33
    I have a game already serving interstitial ads using Google mobile ads plugin. Then, I decided to include Unity in-app purchase service (available in Unity 5.3) but I get an error during the build phase (see below). If I delete the Google Mobile Ads everything start to work.

    CommandInvokationFailure: Unable to convert classes into dex format. See the Console for details.
    /Library/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Applications/android-sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -

    stderr[
    Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/android/vending/billing/IInAppBillingService$Stub$Proxy;
    Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/android/vending/billing/IInAppBillingService$Stub;
    Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/android/vending/billing/IInAppBillingService;
    3 errors; aborting
    ]
    stdout[
    processing archive bin/classes.jar...
    processing com/unity3d/player/a$1.class...
    processing com/unity3d/player/a$2.class...
    processing com/unity3d/player/a$a.class...
    processing com/unity3d/player/a.class...
    processing com/unity3d/player/b$1.class...
    processing com/unity3d/player/b$2.class...
    processing com/unity3d/player/b.class...
    processing com/unity3d/player/c.class...
    processing com/unity3d/player/d$1.class...
    processing com/unity3d/player/d$2.class...
    processing com/unity3d/player/d.class...
    processing com/unity3d/player/e.class...
    processing com/unity3d/player/f.class...
    processing com/unity3d/player/g.class...
    processing com/unity3d/player/h.class...
    processing com/unity3d/player/i.class...
    processing com/unity3d/player/j.class...
    processing com/unity3d/player/k$1.class...
    processing com/unity3d/player/k$2$1$1.class...
    processing com/unity3d/player/k$2$1.class...
    processing com/unity3d/player/k$2.class...
    processing com/unity3d/player/k.class...
    processing com/unity3d/player/l$1.class...
    processing com/unity3d/player/l.class...
    processing com/unity3d/player/m.class...
    processing com/unity3d/player/n$1.class...
    processing com/unity3d/player/n.class...
    processing com/unity3d/player/o.class...
    processing com/unity3d/player/p$1.class...
    processing com/unity3d/player/p.class...
    processing com/unity3d/player/NativeLoader.class...
    processing com/unity3d/player/q.class...
    processing com/unity3d/player/ReflectionHelper$1.class...
    processing com/unity3d/player/ReflectionHelper$a.class...
    processing com/unity3d/player/ReflectionHelper.class...
    processing com/unity3d/player/r.class...
    processing com/unity3d/player/s$1.class...
    processing com/unity3d/player/s$2.class...
    processing com/unity3d/player/s$3.class...
    processing com/unity3d/player/s.class...
    processing com/unity3d/player/t.class...
    processing com/unity3d/player/u.class...
    processing com/unity3d/player/UnityPlayer$1.class...
    processing com/unity3d/player/UnityPlayer$2.class...
    processing com/unity3d/player/UnityPlayer$4.class...
    processing com/unity3d/player/UnityPlayer$5.class...
    processing com/unity3d/player/UnityPlayer$6.class...
    processing com/unity3d/player/UnityPlayer$7.class...
    processing com/unity3d/player/UnityPlayer$8.class...
    processing com/unity3d/player/UnityPlayer$9.class...
    processing com/unity3d/player/UnityPlayer$10.class...
    processing com/unity3d/player/UnityPlayer$11.class...
    processing com/unity3d/player/UnityPlayer$12.class...
    processing com/unity3d/player/UnityPlayer$13.class...
    processing com/unity3d/player/UnityPlayer$14.class...
    processing com/unity3d/player/UnityPlayer$3.class...
    processing com/unity3d/player/UnityPlayer$15$1.class...
    processing com/unity3d/player/UnityPlayer$15.class...
    processing com/unity3d/player/UnityPlayer$16.class...
    processing com/unity3d/player/UnityPlayer$17.class...
    processing com/unity3d/player/UnityPlayer$18.class...
    processing com/unity3d/player/UnityPlayer$19.class...
    processing com/unity3d/player/UnityPlayer$20.class...
    processing com/unity3d/player/UnityPlayer$a.class...
    processing com/unity3d/player/UnityPlayer$b.class...
    processing com/unity3d/player/UnityPlayer$c.class...
    processing com/unity3d/player/UnityPlayer.class...
    processing com/unity3d/player/UnityPlayerActivity.class...
    processing com/unity3d/player/UnityPlayerNativeActivity.class...
    processing com/unity3d/player/UnityPlayerProxyActivity.class...
    processing com/unity3d/player/v.class...
    processing com/unity3d/player/UnityWebRequest.class...
    processing com/unity3d/player/w$1.class...
    processing com/unity3d/player/w.class...
    processing com/unity3d/player/WWW.class...
    processing org/fmod/FMODAudioDevice.class...
    processing org/fmod/a.class...
    processing bitter/jnibridge/JNIBridge$a.class...
    processing bitter/jnibridge/JNIBridge.class...
    processing bin/classes/./com/argonnetech/timetables/R$attr.class...
    processing bin/classes/./com/argonnetech/timetables/R$color.class...
    processing bin/classes/./com/argonnetech/timetables/R$dimen.class...
    processing bin/classes/./com/argonnetech/timetables/R$drawable.class...
    processing bin/classes/./com/argonnetech/timetables/R$id.class...
    processing bin/classes/./com/argonnetech/timetables/R$integer.class...
    processing bin/classes/./com/argonnetech/timetables/R$layout.class...
    processing bin/classes/./com/argonnetech/timetables/R$raw.class...
    processing bin/classes/./com/argonnetech/timetables/R$string.class...
    processing bin/classes/./com/argonnetech/timetables/R$style.class...
    processing bin/classes/./com/argonnetech/timetables/R$styleable.class...
    processing bin/classes/./com/argonnetech/timetables/R.class...
    processing bin/classes/./com/facebook/android/R$attr.class...
    processing bin/classes/./com/facebook/android/R$color.class...
    processing bin/classes/./com/facebook/android/R$dimen.class...
    processing bin/classes/./com/facebook/android/R$drawable.class...
    processing bin/classes/./com/facebook/android/R$id.class...
    processing bin/classes/./com/facebook/android/R$integer.class...
    processing bin/classes/./com/facebook/android/R$layout.class...
    processing bin/classes/./com/facebook/android/R$raw.class...
    processing bin/classes/./com/facebook/android/R$string.class...
    processing bin/classes/./com/facebook/android/R$style.class...
    processing bin/classes/./com/facebook/android/R$styleable.class...
    processing bin/classes/./com/facebook/android/R.class...
    processing bin/classes/./com/facebook/R$attr.class...
    processing bin/classes/./com/facebook/R$color.class...
    processing bin/classes/./com/facebook/R$dimen.class...
    processing bin/classes/./com/facebook/R$drawable.class...
    processing bin/classes/./com/facebook/R$id.class...
    processing bin/classes/./com/facebook/R$integer.class...
    processing bin/classes/./com/facebook/R$layout.class...
    processing bin/classes/./com/facebook/R$raw.class...
    processing bin/classes/./com/facebook/R$string.class...
    processing bin/classes/./com/facebook/R$style.class...
    processing bin/classes/./com/facebook/R$styleable.class...
    processing bin/classes/./com/facebook/R.class...
    processing bin/classes/./com/google/android/gms/R$attr.class...
    processing bin/classes/./com/google/android/gms/R$color.class...
    processing bin/classes/./com/google/android/gms/R$dimen.class...
    processing bin/classes/./com/google/android/gms/R$drawable.class...
    processing bin/classes/./com/google/android/gms/R$id.class...
    processing bin/classes/./com/google/android/gms/R$integer.class...
    processing bin/classes/./com/google/android/gms/R$layout.class...
    processing bin/classes/./com/google/android/gms/R$raw.class...
    processing bin/classes/./com/google/android/gms/R$string.class...
    processing bin/classes/./com/google/android/gms/R$style.class...
    processing bin/classes/./com/google/android/gms/R$styleable.class...
    processing bin/classes/./com/google/android/gms/R.class...
    processing bin/classes/./com/google/unity/R$attr.class...
    processing bin/classes/./com/google/unity/R$color.class...
    processing bin/classes/./com/google/unity/R$dimen.class...
    processing bin/classes/./com/google/unity/R$drawable.class...
    processing bin/classes/./com/google/unity/R$id.class...
    processing bin/classes/./com/google/unity/R$integer.class...
    processing bin/classes/./com/google/unity/R$layout.class...
    processing bin/classes/./com/google/unity/R$raw.class...
    processing bin/classes/./com/google/unity/R$string.class...
    processing bin/classes/./com/google/unity/R$style.class...
    processing bin/classes/./com/google/unity/R$styleable.class...
    processing bin/classes/./com/google/unity/R.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$attr.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$color.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$dimen.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$drawable.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$id.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$integer.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$layout.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$raw.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$string.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$style.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R$styleable.class...
    processing bin/classes/./com/unity/purchasing/googleplay/R.class...
    processing bin/classes/./com/unity/purchasing/R$attr.class...
    processing bin/classes/./com/unity/purchasing/R$color.class...
    processing bin/classes/./com/unity/purchasing/R$dimen.class...
    processing bin/classes/./com/unity/purchasing/R$drawable.class...
    processing bin/classes/./com/unity/purchasing/R$id.class...
    processing bin/classes/./com/unity/purchasing/R$integer.class...
    processing bin/classes/./com/unity/purchasing/R$layout.class...
    processing bin/classes/./com/unity/purchasing/R$raw.class...
    processing bin/classes/./com/unity/purchasing/R$string.class...
    processing bin/classes/./com/unity/purchasing/R$style.class...
    processing bin/classes/./com/unity/purchasing/R$styleable.class...
    processing bin/classes/./com/unity/purchasing/R.class...
    processing archive plugins/./android-support-v4.jar...
    ignored resource META-INF/
    ignored resource META-INF/MANIFEST.MF
    ignored resource android/
    ignored resource android/support/
    ignored resource android/support/annotation/
    processing android/support/annotation/ColorRes.class...
    processing android/support/annotation/XmlRes.class...
    processing android/support/annotation/BoolRes.class...
    processing android/support/annotation/RequiresPermission$Read.class...
    processing android/support/annotation/RequiresPermission.class...
    processing android/support/annotation/RawRes.class...
    processing android/support/annotation/RequiresPermission$Write.class...
    processing android/support/annotation/StyleableRes.class...
    processing android/support/annotation/UiThread.class...
    processing android/support/annotation/TransitionRes.class...
    processing android/support/annotation/AnimRes.class...
    processing android/support/annotation/FloatRange.class...
    processing android/support/annotation/CheckResult.class...
    processing android/support/annotation/IntegerRes.class...
    processing android/support/annotation/Keep.class...
    processing android/support/annotation/AttrRes.class...
    processing android/support/annotation/IntRange.class...
    processing android/support/annotation/CallSuper.class...
    processing android/support/annotation/MenuRes.class...
    processing android/support/annotation/WorkerThread.class...
    processing android/support/annotation/FractionRes.class...
    processing android/support/annotation/Nullable.class...
    processing android/support/annotation/InterpolatorRes.class...
    processing android/support/annotation/ColorInt.class...
    processing android/support/annotation/PluralsRes.class...
    processing android/support/annotation/MainThread.class...
    processing android/support/annotation/DrawableRes.class...
    processing android/support/annotation/LayoutRes.class...
    processing android/support/annotation/Size.class...
    processing android/support/annotation/DimenRes.class...
    processing android/support/annotation/ArrayRes.class...
    processing android/support/annotation/IdRes.class...
    processing android/support/annotation/AnyRes.class...
    processing android/support/annotation/StringRes.class...
    processing android/support/annotation/NonNull.class...
    processing android/support/annotation/IntDef.class...
    processing android/support/annotation/BinderThread.class...
    processing android/support/annotation/StyleRes.class...
    processing android/support/annotation/StringDef.class...
    processing android/support/annotation/AnimatorRes.class...
    processing android/support/annotation/VisibleForTesting.class...
    ignored resource android/support/v4/
    ignored resource android/support/v4/internal/
    ignored resource android/support/v4/internal/view/
    processing android/support/v4/internal/view/SupportSubMenu.class...
    processing android/support/v4/internal/view/SupportMenu.class...
    processing android/support/v4/internal/view/SupportMenuItem.class...
    ignored resource android/support/v4/app/
    processing android/support/v4/app/NavUtils$NavUtilsImplBase.class...
    processing android/support/v4/app/NotificationManagerCompat.class...
    processing android/support/v4/app/NotificationCompat$Style.class...
    processing android/support/v4/app/ShareCompatICS.class...
    processing android/support/v4/app/FragmentTabHost$SavedState$1.class...
    processing android/support/v4/app/NotificationCompat$NotificationCompatImplJellybean.class...
    processing android/support/v4/app/ShareCompat$ShareCompatImplJB.class...
    processing android/support/v4/app/FragmentTransaction$Transit.class...
    processing android/support/v4/app/FragmentState$1.class...
    processing android/support/v4/app/FragmentManagerImpl$AnimateOnHWLayerIfNeededListener$1.class...
    processing android/support/v4/app/NotificationCompat$Action$1.class...
    processing android/support/v4/app/NotificationCompat$Builder.class...
    processing android/support/v4/app/ActivityCompat$SharedElementCallback21Impl.class...
    processing android/support/v4/app/RemoteInput$1.class...
    processing android/support/v4/app/BackStackRecord$3.class...
    processing android/support/v4/app/NotificationBuilderWithBuilderAccessor.class...
    processing android/support/v4/app/NotificationCompat$NotificationCompatImplHoneycomb.class...
    processing android/support/v4/app/FragmentStatePagerAdapter.class...
    processing android/support/v4/app/ActionBarDrawerToggleJellybeanMR2.class...
    processing android/support/v4/app/RemoteInput.class...
    processing android/support/v4/app/FragmentManagerImpl$1.class...
    processing android/support/v4/app/NotificationCompat$BigTextStyle.class...
    processing android/support/v4/app/RemoteInput$ImplJellybean.class...
    processing android/support/v4/app/BaseFragmentActivityHoneycomb.class...
    processing android/support/v4/app/FragmentTabHost$1.class...
    processing android/support/v4/app/ShareCompat$ShareCompatImplBase.class...
    processing android/support/v4/app/FragmentManager$BackStackEntry.class...
    processing android/support/v4/app/SharedElementCallback.class...
    processing android/support/v4/app/ActivityOptionsCompat$ActivityOptionsImplJB.class...
    processing android/support/v4/app/BackStackRecord$2.class...
    processing android/support/v4/app/FragmentManagerImpl$3.class...
    processing android/support/v4/app/TaskStackBuilder.class...
    processing android/support/v4/app/NotificationCompatKitKat$Builder.class...
    processing android/support/v4/app/FragmentManagerImpl$5.class...
    processing android/support/v4/app/NotificationCompat$NotificationCompatImplBase.class...
    processing android/support/v4/app/FragmentTabHost$DummyTabFactory.class...
    processing android/support/v4/app/DialogFragment.class...
    processing android/support/v4/app/FragmentActivity.class...
    processing android/support/v4/app/NotificationCompat$1.class...
    processing android/support/v4/app/ActivityCompat22.class...
    processing android/support/v4/app/NotificationCompat$BigPictureStyle.class...
    processing android/support/v4/app/NotificationCompat$Action$Extender.class...
    processing android/support/v4/app/ActivityManagerCompatKitKat.class...
    processing android/support/v4/app/FragmentTransaction.class...
    processing android/support/v4/app/NotificationCompat$CarExtender$UnreadConversation$Builder.class...
    processing android/support/v4/app/NotificationCompatIceCreamSandwich$Builder.class...
    processing android/support/v4/app/ListFragment$2.class...
    processing android/sup<message truncated>
     
  2. nicholasr

    nicholasr

    Unity Technologies

    Joined:
    Aug 15, 2015
    Posts:
    183
    @a.dibacco The plugin looks like it includes a problematic file, a purchasing (a.k.a. billing) JAR which itself contains Java classes from the package "com/android/vending/billing/IInAppBillingService". These same Java classes are included by Unity IAP to support in-app purchasing. This duplication confuses the Android build, and so to successfully build the Java classes must be made unique.

    I do not have the Google Mobile Ads package (is there a link? I found a repo that might be the source) but I can suggest an untested workaround experiment: (NOTE: Back up your code first!) Try finding the billing JAR in the Google Mobile Ads Plugin folder of your project, and moving the JAR completely out of Assets. I guess the JAR filename could be "in-app-billing-service-aidl.jar" or possibly "billingaidl.jar". Then rebuild for Android.
     
    creativedist and a-tauzzi like this.
  3. a-tauzzi

    a-tauzzi

    Joined:
    Dec 20, 2015
    Posts:
    33
    I deleted in-app-billing-service-aidl.jar under Assets/Plugins/Android/GoogleMobileAdsPlugin/libs and now I'm able to build an APK without problems.

    Thank you very much,
    Antonio.
     
    beppim and nicholasr like this.
  4. beppim

    beppim

    Joined:
    Jul 2, 2015
    Posts:
    58
    @a.dibacco Does this workaround break AdMob or does it still work?
     
  5. a-tauzzi

    a-tauzzi

    Joined:
    Dec 20, 2015
    Posts:
    33
    AdMob still works fine
     
    nicholasr likes this.
Thread Status:
Not open for further replies.