sultanmyrza / preview-camera

3 stars 6 forks source link

Android Build Failed #3

Open Saqib92 opened 2 years ago

Saqib92 commented 2 years ago

Build Failed on Android with logs:

FAILURE: Build failed with an exception.
[capacitor]         
[capacitor]         * What went wrong:
[capacitor]         Execution failed for task ':app:checkDebugAarMetadata'.
[capacitor]         > A failure occurred while executing com.android.build.gradle.internal.tasks.CheckAarMetadataWorkAction
[capacitor]         > The minCompileSdk (31) specified in a
[capacitor]         dependency's AAR metadata (META-INF/com/android/build/gradle/aar-metadata.properties)
[capacitor]         is greater than this module's compileSdkVersion (android-30).
[capacitor]         Dependency: androidx.camera:camera-view:1.1.0-beta01.
[capacitor]         AAR metadata file: /Users/fahadaslam/.gradle/caches/transforms-3/9856aad2745a54865bc831720eb735dd/transformed/jetified-camera-view-1.1.0-beta01/META-INF/com/android/build/gradle/aar-metadata.properties.
[capacitor]         
[capacitor]         * Try:
[capacitor]         Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
[capacitor]         
[capacitor]         * Get more help at https://help.gradle.org
[capacitor]         
[capacitor]         Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
[capacitor]         Use '--warning-mode all' to show the individual deprecation warnings.
[capacitor]         See https://docs.gradle.org/7.0/userguide/command_line_interface.html#sec:command_line_warnings
[capacitor]         
[capacitor]         BUILD FAILED in 8s
[capacitor]         52 actionable tasks: 22 executed, 30 up-to-date
[capacitor]         
[ERROR] An error occurred while running subprocess capacitor.
Saqib92 commented 2 years ago

Now build is working after Updating minCompileSdk to 31. but application crashes when PreviewCamera.startPreview() called.

Android Studio logs:


2022-06-24 12:55:29.784 15237-15237/io.ionic.starter D/AndroidRuntime: Shutting down VM

    --------- beginning of crash
2022-06-24 12:55:29.787 15237-15237/io.ionic.starter E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.ionic.starter, PID: 15237
    java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/databinding/DataBinderMapperImpl;
        at androidx.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:32)
        at androidx.databinding.DataBindingUtil.getDefaultComponent(DataBindingUtil.java:65)
        at io.numbersprotocol.capturelite.plugins.previewcamera.databinding.FragmentPreviewCameraBinding.inflate(FragmentPreviewCameraBinding.java:29)
        at io.numbersprotocol.capturelite.plugins.previewcamera.PreviewCameraFragment.onCreateView(PreviewCameraFragment.kt:150)
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963)
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518)
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282)
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189)
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100)
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002)
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524)
        at android.os.Handler.handleCallback(Handler.java:873)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6758)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912)
     Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.databinding.DataBinderMapperImpl" on path: DexPathList[[zip file "/data/app/io.ionic.starter-zJnILg5FktarXVJ7oA8mZQ==/base.apk"],nativeLibraryDirectories=[/data/app/io.ionic.starter-zJnILg5FktarXVJ7oA8mZQ==/lib/arm64, /data/app/io.ionic.starter-zJnILg5FktarXVJ7oA8mZQ==/base.apk!/lib/arm64-v8a, /system/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at androidx.databinding.DataBindingUtil.<clinit>(DataBindingUtil.java:32) 
        at androidx.databinding.DataBindingUtil.getDefaultComponent(DataBindingUtil.java:65) 
        at io.numbersprotocol.capturelite.plugins.previewcamera.databinding.FragmentPreviewCameraBinding.inflate(FragmentPreviewCameraBinding.java:29) 
        at io.numbersprotocol.capturelite.plugins.previewcamera.PreviewCameraFragment.onCreateView(PreviewCameraFragment.kt:150) 
        at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2963) 
        at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:518) 
        at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:282) 
        at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2189) 
        at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2100) 
        at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2002) 
        at androidx.fragment.app.FragmentManager$5.run(FragmentManager.java:524) 
        at android.os.Handler.handleCallback(Handler.java:873) 
        at android.os.Handler.dispatchMessage(Handler.java:99) 
        at android.os.Looper.loop(Looper.java:193) 
        at android.app.ActivityThread.main(ActivityThread.java:6758) 
        at java.lang.reflect.Method.invoke(Native Method) 
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:497) 
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:912) 
Saqib92 commented 2 years ago

this is My example code. take a look: https://github.com/Saqib92/capacitor-preview-camera-example

Reizar commented 1 year ago

@Saqib92 I found a solution to this as I ran into it too.

In your module build.gradle ( android/app/build.gradle)

You need to add this to the android section:

buildFeatures {
    dataBinding true
}
dataBinding {
    enabled = true
}

Should look something like this:

android {
    compileSdkVersion rootProject.ext.compileSdkVersion
    defaultConfig {
        .... removed
        }
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    buildFeatures {
        dataBinding true
    }
    dataBinding {
        enabled = true
    }
}
sultanmyrza commented 11 months ago

@Reizar yes you are right, thank you for mentioning that. Probably need to add it to readme.