在新的Android项目中找不到类“ com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions $ Builder”

问题描述 投票:0回答:1

我创建了一个android库模块,以使用Firebase MLKit视觉库实现逻辑,并且示例项目在本地运行良好。但是,当我尝试发布Maven本地依赖项或导出.aar时,出现以下错误:

 java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/firebase/ml/vision/face/FirebaseVisionFaceDetectorOptions$Builder;
    at com.globant.face.recognition.library.detection.FaceDetectionProcessor.<init>(FaceDetectionProcessor.kt:27)
    at com.globant.face.recognition.library.LegacyLivePreviewActivity.createCameraSource(LegacyLivePreviewActivity.kt:78)
    at com.globant.face.recognition.library.LegacyLivePreviewActivity.onCreate(LegacyLivePreviewActivity.kt:47)
    at android.app.Activity.performCreate(Activity.java:7825)
    at android.app.Activity.performCreate(Activity.java:7814)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1306)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3245)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3409)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2016)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:214)
    at android.app.ActivityThread.main(ActivityThread.java:7356)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930)
 Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.firebase.ml.vision.face.FirebaseVisionFaceDetectorOptions$Builder" on path: DexPathList[[zip file "/data/app/com.disney.wdpro.profileui.sample-DiQs8qInpjzgW0pepALP4A==/base.apk"],nativeLibraryDirectories=[/data/app/com.disney.wdpro.profileui.sample-DiQs8qInpjzgW0pepALP4A==/lib/arm64, /data/app/com.disney.wdpro.profileui.sample-DiQs8qInpjzgW0pepALP4A==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)

这是我的包含Firebase MLKit依赖项的android库的build.gradle:

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'maven-publish'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"
    def artifactId = 'com.example'
    def groupId = 'library'

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles 'consumer-rules.pro'

    }

    dexOptions {
        javaMaxHeapSize "2g"
    }

    buildTypes {
        release {
            multiDexKeepFile file('multidex-config.txt')
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug{
            multiDexKeepFile file('multidex-config.txt')
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    implementation "androidx.appcompat:appcompat:${app_compat_version}"
    //api(name:'firebase-ml-vision-24.0.3', ext:'aar')
    //api(name:'firebase-ml-vision-face-model-20.0.1', ext:'aar')

    api "com.google.firebase:firebase-ml-vision:${firebase_ml_vision_version}"
    api "com.google.firebase:firebase-ml-vision-face-model:${firebase_face_model_version}"
   // api "com.google.android.gms:play-services-base:17.0.0"
    testImplementation "junit:junit:${junit_version}"
    androidTestImplementation "androidx.test.ext:junit:${android_test_version}"
    androidTestImplementation "androidx.test.espresso:espresso-core:${expresso_core_version}"
}

project.afterEvaluate {
    publishing {
        publications {
            library(MavenPublication) {
                setGroupId groupId
                setArtifactId artifactId
                version android.defaultConfig.versionName

                artifact bundleReleaseAar
            }
        }
    }
}

这些是版本:

ext {app_compat_version =“ 1.1.0”firebase_core_version =“ 16.0.9”firebase_ml_vision_version =“ 24.0.3”firebase_face_model_version =“ 20.0.1”junit_version =“ 4.12”android_test_version =“ 1.1.1”expresso_core_version =“ 3.2.0”ktx_core_version =“ 1.1.0”}

android android-library face-detection firebase-mlkit
1个回答
0
投票

您可以尝试以下版本

        // ML Kit dependencies
        implementation 'com.google.firebase:firebase-ml-vision:24.0.2'
        // Face model
        implementation 'com.google.firebase:firebase-ml-vision-face-model:20.0.0'
© www.soinside.com 2019 - 2024. All rights reserved.