【问题标题】:Error building .apk archive with Google Cardboard VR使用 Google Cardboard VR 构建 .apk 存档时出错
【发布时间】:2017-06-11 12:38:25
【问题描述】:

我正在尝试使用 Unity 5.6 和 Google Cardboard 构建我的 VR 项目。我收到以下错误

CommandInvokationFailure: Unable to convert classes into dex format.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home/bin/java -Xmx2048M -Dcom.android.sdkmanager.toolsdir="/Users/mymac/Library/Android/sdk/tools" -Dfile.encoding=UTF8 -jar "/Applications/Unity/PlaybackEngines/AndroidPlayer/Tools/sdktools.jar" -

stderr[
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/DisplaySynchronizer;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/FrameMonitor;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/NFCUtils;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/NFCUtils$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/TransitionView;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/TransitionView$1;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/TransitionView$2;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/TransitionView$3;
Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/vr/cardboard/TransitionView$TransitionListener;

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.RuntimeException: Translation has been interrupted
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:613)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
    at com.android.dx.command.dexer.Main.run(Main.java:277)
    at com.android.dx.command.dexer.Main.main(Main.java:245)
    at com.android.dx.command.Main.main(Main.java:106)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at SDKMain.main(SDKMain.java:129)
Caused by: java.lang.InterruptedException: Too many errors
    at com.android.dx.command.dexer.Main.processAllFiles(Main.java:605)
    ... 9 more
]
stdout[
processing archive /Users/mymac/Desktop/project/Temp/StagingArea/android-libraries/gvr-permissionsupport-release/libs/./classes.jar...
processing com/google/gvr/permissionsupport/BuildConfig.class...
processing com/google/gvr/permissionsupport/PermissionsFragment.class...
processing com/google/gvr/permissionsupport/PermissionsFragment$1.class...
processing com/google/gvr/permissionsupport/PermissionsFragment$PermissionsCallback.class...
processing com/google/gvr/permissionsupport/TransitionVRActivity.class...
processing com/google/gvr/permissionsupport/TransitionVRActivity$1.class...
ignored resource mymac/Temp/StagingArea/android-libraries/gvr/libs/./armeabi-v7a/libgvr.so
processing archive

环顾四周,发现可能是.jar/.aar文件重复错误,所以我在我的项目中寻找:

mymac$ find . | grep .aar
./Assets/Plugins/Android/gvr-permissionsupport-release.aar
./Assets/Plugins/Android/gvr-permissionsupport-release.aar.meta
./Temp/StagingArea/aar
./Temp/StagingArea/aar/gvr-permissionsupport-release.aar
./Temp/StagingArea/aar/gvr.aar
./Temp/StagingArea/aar/unitygvr.aar

mymac$ find . | grep .jar
./Assets/Plugins/Android/unityvractivity.jar
./Assets/Plugins/Android/unityvractivity.jar.meta
./Temp/StagingArea/android-libraries/gvr/libs/classes.jar
./Temp/StagingArea/android-libraries/gvr-permissionsupport-release/libs/classes.jar
./Temp/StagingArea/android-libraries/unitygvr/libs/classes.jar
./Temp/StagingArea/bin/classes.jar
./Temp/StagingArea/plugins/libprotobuf-java-nano.jar
./Temp/StagingArea/plugins/unityvractivity.jar

您可以看到没有重复,因为所有其他文件都是在构建时在 /Temp 中创建的副本。不知道如何继续。

【问题讨论】:

  • 你能在Android上构建空项目吗?测试并告诉我们结果。
  • 是的,如果我删除 VR 支持(取消选中“支持虚拟现实”标志),项目构建没有问题
  • 有趣。试试this
  • 我已经试过了。它不起作用。看来问题出在 class.jar
  • 你用的是什么插件?你能列出他们的版本吗?

标签: unity3d jar apk google-cardboard


【解决方案1】:

修复了从项目中移除 GoogleVR 插件的问题。即使 bash 控制台没有显示,也不知何故存在重复。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    相关资源
    最近更新 更多