Aditya94A / Morphing-Material-Dialogs

Material dialog :heart: morphing animation. An android kotlin UI library for building beautiful animations for converting a floating action button into a material dialog.
https://adi.bio
MIT License
894 stars 64 forks source link

Failed when compile project #5

Closed HayTran closed 6 years ago

HayTran commented 6 years ago

Error:com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/haytran/.gradle/caches/transforms-1/files-1.1/Morphing-Material-Dialogs-0.0.1-alpha2.aar/a4e8ad92db421a1a69733ac31c121cd3/jars/classes.jar Error:com.android.builder.dexing.DexArchiveBuilderException: Error while dexing in/adityaanand/morphdialog/MorphDialogActivity.class Error:com.android.dx.cf.code.SimException: invalid opcode ba (invokedynamic requires --min-sdk-version >= 26) Error:Execution failed for task ':app:transformClassesWithDexBuilderForDebug'.

com.android.build.api.transform.TransformException: com.android.builder.dexing.DexArchiveBuilderException: com.android.builder.dexing.DexArchiveBuilderException: Failed to process /Users/haytran/.gradle/caches/transforms-1/files-1.1/Morphing-Material-Dialogs-0.0.1-alpha2.aar/a4e8ad92db421a1a69733ac31c121cd3/jars/classes.jar

Aditya94A commented 6 years ago

I could be wrong, but that looks like you're going over the 65k method limit (nothing to do with this library). To confirm, can you check your method count (with something like the dexcount plugin)? Or temporarily just enable proguard in the debug build (if you haven't already)?

Do you also have the afollestad/material-dialogs dependency? If so, then which version are you using?

HayTran commented 6 years ago

I implemented Mutidex in my project and material-dialog dependency version is 0.9.5.0. After searched some resolves, my project can be compiled by adding classpath com.neenbedankt.gradle.plugins:android-apt:1.8 in build.gradle project level as well as adding this spinet in build.gradle app level:

android {
//..
 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

However, now when I using this spinet result in crashing app.

new MorphDialog.Builder(getActivity(), mFab)
                        .title("Title")
                        .content("This is a sentence. Here is another one.")
                        .show();

This message below showed when app crash:

11-17 17:32:16.952 31279-31279/com.iot.babymonitor E/AndroidRuntime: FATAL EXCEPTION: main Process: com.iot.babymonitor, PID: 31279 java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapper; at android.databinding.DataBindingUtil.(DataBindingUtil.java:31) at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261) at in.adityaanand.morphdialog.MorphDialogActivity.onCreate(MorphDialogActivity.java:29) at android.app.Activity.performCreate(Activity.java:6975) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapper" on path: DexPathList[[zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/base.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_dependencies_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_0_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_1_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_2_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_3_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_4_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_5_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_6_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_7_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_8_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/lib/arm64, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/base.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.databinding.DataBindingUtil.(DataBindingUtil.java:31)  at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261)  at in.adityaanand.morphdialog.MorphDialogActivity.onCreate(MorphDialogActivity.java:29)  at android.app.Activity.performCreate(Activity.java:6975)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)  at android.os.Handler.dispatchMessage(Handler.java:105)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6541)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)  11-17 17:32:16.953 31279-31279/com.iot.babymonitor E/UncaughtException: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/databinding/DataBinderMapper; at android.databinding.DataBindingUtil.(DataBindingUtil.java:31) at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261) at in.adityaanand.morphdialog.MorphDialogActivity.onCreate(MorphDialogActivity.java:29) at android.app.Activity.performCreate(Activity.java:6975) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892) at android.app.ActivityThread.-wrap11(Unknown Source:0) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593) at android.os.Handler.dispatchMessage(Handler.java:105) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:6541) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) Caused by: java.lang.ClassNotFoundException: Didn't find class "android.databinding.DataBinderMapper" on path: DexPathList[[zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/base.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_dependencies_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_0_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_1_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_2_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_3_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_4_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_5_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_6_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_7_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_8_apk.apk", zip file "/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/lib/arm64, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/base.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_dependencies_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_0_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_1_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_2_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_3_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_4_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_5_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_6_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_7_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_8_apk.apk!/lib/arm64-v8a, /data/app/com.iot.babymonitor-3vXELmJqObXL92iHomcEkQ==/split_lib_slice_9_apk.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93) at java.lang.ClassLoader.loadClass(ClassLoader.java:379) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.databinding.DataBindingUtil.(DataBindingUtil.java:31)  at android.databinding.DataBindingUtil.setContentView(DataBindingUtil.java:261)  at in.adityaanand.morphdialog.MorphDialogActivity.onCreate(MorphDialogActivity.java:29)  at android.app.Activity.performCreate(Activity.java:6975)  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1213)  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2770)  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2892)  at android.app.ActivityThread.-wrap11(Unknown Source:0)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1593)  at android.os.Handler.dispatchMessage(Handler.java:105)  at android.os.Looper.loop(Looper.java:164)  at android.app.ActivityThread.main(ActivityThread.java:6541)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767) 

Aditya94A commented 6 years ago

By the way, there's no need to use apt plugin now, there's an annotation processor built in, e.g:

dependencies {
    annotationProcessor 'com.bluelinelabs:logansquare-compiler:1.3.6'
}

Can you confirm that you have data binding enabled like

android {
    compileSdkVersion 26
    buildToolsVersion '26.0.1'

    dataBinding.enabled = true
...
}

Also, the library is built on fairly recent versions and this still seems like a configuration issue to me. What versions are your:

If you haven't already, try updating to at least the latest stable versions to rule out version mismatches.

Finally, can you also confirm that you can use data binding elsewhere inside your app? This should also rule out the possibility of a configuration issue.

HayTran commented 6 years ago

It worked. Thank you very much for supporting me that. Anyway, I still do not understand why using

dependencies {
     annotationProcessor 'com.bluelinelabs:logansquare-compiler:1.3.6'
 }

Thanks

Aditya94A commented 6 years ago

Oh that was just an example to show that you can replace all apt's with annotationProcessor (You don't actually need this for the project lol, feel free to remove it)