908Inc / stickerfactory

Stickerfactory module for Stickerpipe Android SDK
Other
5 stars 2 forks source link

Stickerfactory with Adobe Creative SDK #1

Closed mslobodan closed 7 years ago

mslobodan commented 7 years ago

Hello everybody!

I have integrated stickerfactory module in my Android app. Now, I want to integrate Adobe Creative SDK to have image process feature (filters, etc.).

In app build.gradle in dependencies section we have:

compile project(':stickers')

// other dependencies here

compile 'com.adobe.creativesdk.foundation:auth:0.9.1251'
compile 'com.adobe.creativesdk:image:4.8.4'
compile 'com.localytics.android:library:3.8.0'

When signing apk I got this error:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithJarMergingForStageDebug'.
> com.android.build.api.transform.TransformException: java.util.zip.ZipException: duplicate entry: com/android/vending/billing/IInAppBillingService$Stub$Proxy.class

I have found this link on Adobe support page: https://creativesdk.zendesk.com/hc/en-us/articles/209685473-Android-Image-Editor-IInAppBillingService-Stub-Proxy-class-duplicated-entry-Exception

but still haven't figure out how to solve this issue. 😢

Can someone give me some hint or solution for this problem?

dehimb commented 7 years ago

Hi @mslobodan You need to remove iab dependency from stickerfactory module

Or, maybe, you already solve this issue?

mslobodan commented 7 years ago

Hi @dehimb

I have tried before with

compile(project(':stickers')) {
    exclude group: 'com.anjlab.android.iab.v3'
}

and build passed, but when I start app it shows other error:

  --------- beginning of crash
07-17 17:03:49.804 29203-29203/com.test_.test_mobile_stage E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.test_.test_mobile_stage, PID: 29203
    java.lang.NoClassDefFoundError: Failed resolution of: Lvc908/stickerfactory/ui/activity/ShopWebViewActivity;
        at vc908.stickerfactory.StickersManager.<clinit>(StickersManager.java:41)
        at vc908.stickerfactory.StickersManager.initialize(StickersManager.java:73)
        at org.test_.mobile.app.AndroidTestApp.onCreate(AndroidTestApp.java:68)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5498)
        at android.app.ActivityThread.-wrap2(ActivityThread.java)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1575)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:154)
        at android.app.ActivityThread.main(ActivityThread.java:6236)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781)
    Caused by: java.lang.ClassNotFoundException: vc908.stickerfactory.ui.activity.ShopWebViewActivity
        at java.lang.VMClassLoader.findLoadedClass(Native Method)
        at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:362)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at vc908.stickerfactory.StickersManager.<clinit>(StickersManager.java:41) 
        at vc908.stickerfactory.StickersManager.initialize(StickersManager.java:73) 
        at org.test_.mobile.app.AndroidTestApp.onCreate(AndroidTestApp.java:68) 
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5498) 
        at android.app.ActivityThread.-wrap2(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1575) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6236) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 
    Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Lcom/anjlab/android/iab/v3/BillingProcessor$IBillingHandler;
        at vc908.stickerfactory.StickersManager.<clinit>(StickersManager.java:41) 
        at vc908.stickerfactory.StickersManager.initialize(StickersManager.java:73) 
        at org.test_.mobile.app.AndroidTestApp.onCreate(AndroidTestApp.java:68) 
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5498) 
        at android.app.ActivityThread.-wrap2(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1575) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6236) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.anjlab.android.iab.v3.BillingProcessor$IBillingHandler" on path: DexPathList[[zip file "/data/app/com.test_.test_mobile_stage-2/base.apk"],nativeLibraryDirectories=[/data/app/com.test_.test_mobile_stage-2/lib/arm, /data/app/com.test_.test_mobile_stage-2/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at vc908.stickerfactory.StickersManager.<clinit>(StickersManager.java:41) 
        at vc908.stickerfactory.StickersManager.initialize(StickersManager.java:73) 
        at org.test_.mobile.app.AndroidTestApp.onCreate(AndroidTestApp.java:68) 
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1025) 
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5498) 
        at android.app.ActivityThread.-wrap2(ActivityThread.java) 
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1575) 
        at android.os.Handler.dispatchMessage(Handler.java:102) 
        at android.os.Looper.loop(Looper.java:154) 
        at android.app.ActivityThread.main(ActivityThread.java:6236) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:891) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:781) 

In StickersManager line 41 it has public static Class<? extends ShopWebViewActivity> shopClass = ShopWebViewActivity.class;, and ShopWebViewActivity implements BillingProcessor.IBillingHandler from com.anjlab.android.iab.v3 (which I excluded in build.gradle).

I don't know how to fix this. Do you have some idea?

dehimb commented 7 years ago

@mslobodan The simplest way for you is to modify ShopWebViewActivity You need to remove all implementing of BillingProcessor

mslobodan commented 7 years ago

I have tried adding android-inapp-billing-v3 as library to my project and adding this module to stickerfactory. I have removed IInAppBillingService.aidl file, but project could not be built.

So finally, I fixed it this way: https://github.com/anjlab/android-inapp-billing-v3/issues/111#issuecomment-226981589, and adding this .jar file (android-inapp-billing-v3) in stickerfactory.