0

I'm trying to build my VR project using Unity 5.6 and Google Cardboard. I'm getting the following error

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

Looking around I found that it might be a .jar/.aar files duplication error, so I have looked for them in my project:

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

ad you can see there are no duplications as all the other files are copy created in /Temp at build time. Not sure about how to proceed.

Claus
  • 5,662
  • 10
  • 77
  • 118
  • Can you build empty project to Android? Test and let us know the result. – Programmer Jun 11 '17 at 12:50
  • yes, If I remove the VR support (unchecking the "Virtual Reality Supported" flag) the project builds without problems – Claus Jun 11 '17 at 12:57
  • Interesting. Try [this](https://stackoverflow.com/questions/37313735/unable-to-list-target-platforms-please-make-sure-the-android-sdk-path-is-correc/37314122#37314122) – Programmer Jun 11 '17 at 12:59
  • I had already tried it. It doesn't work. It seems the problem is in class.jar – Claus Jun 11 '17 at 13:01
  • What plugins are you using? Can you list their versions too? – Programmer Jun 11 '17 at 13:03
  • just solved removing the Android folder from the Plugin folder. I guess there were some duplicates there. It's now building the .apk adding Cardboard or Daydream in the VR support but gotta test if it works on the device. Update will follow – Claus Jun 11 '17 at 13:15
  • Yeah. I was going to make you remove them one by one until you find which one has the duplicate. Congrats! – Programmer Jun 11 '17 at 13:49
  • thanks for the help. How shall I mark this question? – Claus Jun 12 '17 at 09:55
  • You should not mark it as anything because no one provided an answer and your problem is solved. You can either put your own answer or delete it. – Programmer Jun 12 '17 at 10:58

1 Answers1

2

Fixed removing the GoogleVR plug-in from the project. Somehow there was a duplication even if not shown by the bash console.

Claus
  • 5,662
  • 10
  • 77
  • 118