首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将"com.unity3d.player.UnityPlayer“导入我的安卓库?

如何将"com.unity3d.player.UnityPlayer“导入我的安卓库?
EN

Stack Overflow用户
提问于 2019-12-17 21:20:27
回答 5查看 8.8K关注 0票数 4

我在将UnityPlayer依赖项输入到我的Android插件中时遇到了问题。

我只是想不出向插件添加依赖项的正确方法。

在我尝试将一个classes.jar文件添加到我的libs目录中之前,这个目录包含了所有的UnityPlayer代码,这使我能够在没有intellisense错误的情况下编写代码,但是当我构建和运行时,我得到了大量的输出。

代码语言:javascript
复制
CommandInvokationFailure: Gradle build failed. 
C:\Program Files\Unity\Hub\Editor\2018.4.14f1\Editor\Data\PlaybackEngines\AndroidPlayer/Tools\OpenJDK\Windows\bin\java.exe -classpath "C:\Program Files\Unity\Hub\Editor\2018.4.14f1\Editor\Data\PlaybackEngines\AndroidPlayer\Tools\gradle\lib\gradle-launcher-5.1.1.jar" org.gradle.launcher.GradleMain "-Dorg.gradle.jvmargs=-Xmx4096m" "assembleRelease"

stderr[

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':checkReleaseDuplicateClasses'.
> 1 exception was raised by workers:
  java.lang.RuntimeException: Duplicate class bitter.jnibridge.JNIBridge found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class bitter.jnibridge.JNIBridge$a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.NativeLoader found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.ReflectionHelper found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.ReflectionHelper$1 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.ReflectionHelper$a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$1 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$10 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$11 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$12 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$13 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$14 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$15 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$16 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$17 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$18 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$19 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$2 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$3 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$4 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$5 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$6 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$7 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$8 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$9 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$b found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayer$c found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.UnityPlayerActivity found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.a$1 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.a$2 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.a$a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.b found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.c found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.d found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.e found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.f found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.g found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.h found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.i found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.j found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.k found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.k$1 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.l found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.m found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.n found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.o found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.p found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.q found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.q$1 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.q$2 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class com.unity3d.player.q$3 found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class org.fmod.FMODAudioDevice found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)
  Duplicate class org.fmod.a found in modules classes-2.jar (:coffeeplugin-release:) and unity-classes.jar (unity-classes.jar)

  Go to the documentation to learn how to <a href="d.android.com/r/tools/classpath-sync-errors">Fix dependency resolution errors</a>.


* Try:
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.

* Get more help at https://help.gradle.org

BUILD FAILED in 8s
]
stdout[
> Task :preBuild UP-TO-DATE
> Task :preReleaseBuild UP-TO-DATE
> Task :compileReleaseAidl NO-SOURCE
> Task :compileReleaseRenderscript NO-SOURCE
> Task :checkReleaseManifest UP-TO-DATE
> Task :generateReleaseBuildConfig UP-TO-DATE
> Task :prepareLintJar UP-TO-DATE
> Task :generateReleaseSources UP-TO-DATE
> Task :javaPreCompileRelease
> Task :mainApkListPersistenceRelease UP-TO-DATE
> Task :generateReleaseResValues UP-TO-DATE
> Task :generateReleaseResources UP-TO-DATE
> Task :mergeReleaseResources UP-TO-DATE
> Task :createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :processReleaseManifest
> Task :processReleaseResources
> Task :compileReleaseJavaWithJavac
> Task :compileReleaseSources
> Task :lintVitalRelease
> Task :mergeReleaseShaders UP-TO-DATE
> Task :compileReleaseShaders UP-TO-DATE
> Task :generateReleaseAssets UP-TO-DATE
> Task :mergeReleaseAssets
> Task :validateSigningRelease UP-TO-DATE
> Task :signingConfigWriterRelease UP-TO-DATE
> Task :checkReleaseDuplicateClasses FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 6.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/5.1.1/userguide/command_line_interface.html#sec:command_line_warnings
19 actionable tasks: 7 executed, 12 up-to-date
]
exit code: 1
UnityEditor.Android.Command.WaitForProgramToRun (UnityEditor.Utils.Program p, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.Command.Run (System.Diagnostics.ProcessStartInfo psi, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.Command.Run (System.String command, System.String args, System.String workingdir, UnityEditor.Android.Command+WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.AndroidJavaTools.RunJava (System.String args, System.String workingdir, System.Action`1[T] progress, System.String error) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <f92457847c324e90907abe57dde6951d>:0)
Rethrow as GradleInvokationException: Gradle build failed
UnityEditor.Android.GradleWrapper.Run (UnityEditor.Android.AndroidJavaTools javaTools, System.String workingdir, System.String task, System.Action`1[T] progress) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.PostProcessor.Tasks.BuildGradleProject.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <f92457847c324e90907abe57dde6951d>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr) (at C:/buildslave/unity/build/Modules/IMGUI/GUIUtility.cs:179)

我看到的大多是重复的错误,所以我猜我已经在我的Android项目中拥有了classes.jar中的所有内容。我从一个从Unitor.com导出的项目中构建了这个项目,并在Android中打开它,然后制作了"coffeeplugin"模块。

当我尝试在Gradle构建脚本中添加com.unity3d.player.UnityPlayer时,Android在同步Gradle时告诉我它是一个无效的字符串。

我知道它想要:SomeTag,我猜,但我不知道该放什么。统一文献并没有真正深入到这一部分(至少从我能够找到的文档和博客中)。

咖啡插件build.gradle

代码语言:javascript
复制
apply plugin: 'com.android.library'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.2"


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

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

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

}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'com.unity3d.player'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}

task copyPlugin(type: Copy) {
    dependsOn assemble
    from ('build/output/aar')
    into ('N:/Storage/UnityProjects/Coffee/Assets/Plugins/Android')
    include (project.name + "-release.aar")
}
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2019-12-18 15:15:35

我准确地知道了这些AAR文件中包含了什么,我已经导入到了Unity中。我一直在做正确的事情,将classes.jar从Unity中包含到我的plugin/libs中。问题是,通过在Android中使用classes.jarlibs中构建插件,最终的AAR输出中包含了classes.jar,这在统一方面是多余的,因为团结已经有了这些数据,因此出现了重复的类错误。

修复是打开AAR是一些存档编辑器(7-zip或winrar),并且只提取其中的clases.jar,并只将其导入到Unity中。

我很惊讶在这个过程中没有更多的官方文件。

而且,这个修复意味着没有必要对Gradle构建脚本进行编辑,除非您想要自动化从中间构建到统一的复制过程。

票数 5
EN

Stack Overflow用户

发布于 2020-03-08 22:24:03

implementation更改为compileOnly for 'com.unity3d.player'。这允许在编译时使用统一播放器classes.jar,而不是在导致复制的运行时使用。

票数 5
EN

Stack Overflow用户

发布于 2021-03-09 09:56:36

我所做的事情被改名为Unity classes.jar to clases.jar

并在Gradle文件中添加了以下内容

,如果这仍然给出错误,那么:Goto File>>Settings

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59382250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档