Search code examples
androidunity-game-engineprojectmapboxtango

Unity project with Mapbox and Project Tango


Trying to create an app for Tango that uses the Mapbox-sdk in Unity. The goal is visualize a 3D-model combined with augmentet reality. When trying to build the apk for a project that uses both Mapbox and Tango in Unity, the following errors occur:

Error: Error while saving blame file, build will continue
Error: The prefix "tools" for attribute "tools:overrideLibrary" associated with an element type "uses-sdk" is not bound.
UnityEditor.HostView:OnGUI()

AndroidSDKToolsException: Unable to merge android manifests. See the Console for more details. 
UnityEditor.Android.AndroidSDKTools.DetectErrorsAndWarnings (System.String logMessages, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandInternal (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommandSafe (System.String javaExe, System.String sdkToolsDir, System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, Int32 memoryMB, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, System.String workingdir, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.RunCommand (System.String[] sdkToolCommand, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit, System.String errorMsg)
UnityEditor.Android.AndroidSDKTools.MergeManifests (System.String target, System.String mainManifest, System.String[] libraryManifests, UnityEditor.Android.WaitingForProcessToExit waitingForProcessToExit)
UnityEditor.Android.PostProcessor.Tasks.GenerateManifest.MergeManifests (UnityEditor.Android.PostProcessor.PostProcessorContext context, System.String targetManifest, System.String mainManifest)
UnityEditor.Android.PostProcessor.Tasks.GenerateManifest.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context)
UnityEditor.HostView:OnGUI()

These error occurs even if the project is "empty", the only thing I have done is to import Mapbox and Unity.

Anyone know how to solve it?


Solution

  • After importing Tango and Mapbox packages there are some conflicts.

    In order to solve them you should add tools:node="merge" and xmlns:tools="http://schemas.android.com/tools" in the AndroidManifest.xml located in Assets>Plugins>Android (avoiding merge manifest conflicts) and also remove duplicated support-v4-23.4.0.aar library from the same folder (there is a newer version included in Mapbox assets).

    Remember also to config Build Settings (File>Build Settings):

    • With Android selected press Switch Platform button
    • Click on Player Settings button
      • Set a Package Name for your Android app
      • Set Minimum API level to 17 (Tango requires it)

    Screenshot:

    Unity Mapbox Tango Setup

    With that setup, after clicking Build & Run an .apk is correctly generated and if you have the device connected you should see the application running on it.