程序类型已存在:当我在Android原生项目中使用Unity库(带有ARCore)时出现android.media.VisibleImage错误(使用ARCore)

时间:2018-04-19 12:28:46

标签: android unity3d arcore

我正在尝试使用ARcore构建应用。一切正常,但我无法在Android Native应用程序中实现一些要求,因此我们选择了Unity。我们在Unity库项目中实现了ARCore。然后我们将Unity库项目实现到Android基本应用程序(没有ARCore的Native应用程序)。它工作正常,但如果我在使用ARCore的Native Android项目中实现统一库项目,我会收到冲突错误。

这是我的应用依赖:

dependencies {
    // ARCore library
    implementation 'com.google.ar:core:1.1.0'

    // Obj - a simple Wavefront OBJ file loader
    // https://github.com/javagl/Obj
    implementation 'de.javagl:obj:0.2.1'
    implementation project(':unity_ar_library')
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support.constraint:constraint-layout:1.1.0'

    implementation 'com.squareup.retrofit2:converter-gson:2.4.0'
}

这是统一库依赖:

 implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation project(':arcore_client')
    implementation project(':google_ar_required')
    implementation project(':unitygar')
    implementation project(':unityandroidpermissions') 

我收到此错误:

Program type already present: android.media.VisibleImage$Plane
Message{kind=ERROR, text=Program type already present: android.media.VisibleImage$Plane, sources=[Unknown source file], tool name=Optional.of(D8)}

Caused by: java.lang.RuntimeException: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\32, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\externalLibsDexMerger\debug\0, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\26.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\27.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\29.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\30.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\31.jar

Caused by: com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\32, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\externalLibsDexMerger\debug\0, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\26.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\27.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\29.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\30.jar, E:\AR_New\arcore-android-sdk-master\samples\hello_ar_java\app\build\intermediates\transforms\dexBuilder\debug\31.jar

com.android.tools.r8.CompilationFailedException: Compilation failed to complete 

com.android.tools.r8.utils.AbortException   

你可以告诉我是否还有其他东西需要补充,以了解我在做什么或我错在哪里。

我尝试更改Android支持库版本,但没有帮助。

如果我删除Unity项目,我的本机ARCore项目正在运行。如果  我在另一个原生Android应用程序(没有ARCore)中使用Unity Library AR核心项目,它运行正常。

1 个答案:

答案 0 :(得分:2)

正如我在我的问题中提到的,我在我的原生应用程序中使用了1.1.0 AR Core版本。

 // ARCore library
    implementation 'com.google.ar:core:1.1.0'

在统一Android库中,他们也使用相同的1.1.0版本

我们已经尝试将Ar核心版本降级到1.0.0(在Android本机应用程序中以及在统一库中),然后解决了android.media.VisibleImage错误。

上述错误仅发生在1.1.0 AR核心版本