Log in or register to post comments

Dataset does not exist in some Unity Editor

April 22, 2013 - 2:20am #1

 

Hello,

We're facing a problem with Vuforia 2 for Unity 4. We don't really understand, because during execution in the Unity Editor there is an error here :

 

if (!DataSet.Exists(dataSetPath, DataSet.StorageType.STORAGE_ABSOLUTE)) { Debug.LogError("Data set " + dataSetPath + " does not exist."); return; }

it says : Data set "C:/Users/XXXXXXX/AppData/LocalLow/data/dataset.xml" does not exist.

The more strange is that on some PC (on 4 Windows 7), it works, and on others (one XP and 2 Windows 7), there is the previous error. 

 

We tried to disable antivirus and firewall but without success... We thought it could be due to rights restrictions, so we have test to move the dataset.xml file in another directory (D:/toto/dataset.xml), but there is the same error on some computer...

 

Did anyone already meet this problem ? What might be this problem ?

 

Thanks in Advance :/

 

Dataset does not exist in some Unity Editor

June 3, 2013 - 3:42am #34

I see.

The problem is that officially we don't provide support for Win XP.

Win XP can be used as indicated in the getting Started guide:

https://developer.vuforia.com/resources/dev-guide/step-1-installing-extension

The recommended development environment for Android is Microsoft Windows 7 32/64-bit or Windows XP

 

however, in this page we clarify the support aspect:

https://developer.vuforia.com/resources/dev-guide/step-2-installing-vuforia-sdk

Although we distribute installers for the platforms listed below, support for Vuforia SDK development is limited to the Win 7 32/64-bit platform.

So, the fix for Win XP might get considered with lower priority by our team.

 

Dataset does not exist in some Unity Editor

May 30, 2013 - 9:41am #33

This developer need to have windows XP on this machine :( He can't switch to windows 7 

Dataset does not exist in some Unity Editor

May 30, 2013 - 9:15am #32

Ok, thanks for the test and the confirmation.

The issue is now escalated for further investigation; however, please keep in mind that this might take some time.

Have you considered upgrading to Windows 7 on that machine too ? 

 

Dataset does not exist in some Unity Editor

May 30, 2013 - 6:10am #31

Hello Alessandro,

We have made the test with another Webcam on the computer which is running on Windows XP.

The problem is exactly the same... (the first was a PS Eye, the second a webcam logitech) The dataset is never found so.

Best Regards,

typtohms

 

Dataset does not exist in some Unity Editor

May 29, 2013 - 4:43am #30

I see. Have you tried using a different camera on the XP machine ?

just to double-check that it's not an issue perhaps related to a specific webcam

Dataset does not exist in some Unity Editor

May 29, 2013 - 12:47am #29

Hello Alessandro,

It's unfortunately the only PC that we have on windows XP with a Unity PRO licence. (But it's very annoying for it)

So we can't do the test on other Windows XP computer :(

typtohms

 

Dataset does not exist in some Unity Editor

May 28, 2013 - 6:46am #28

Ok, I'm glad to hear that the solution is confirmed at least on the Windows 7 platform.

For Windows XP, can you confirm that it occurs on all WinXP machines that you are using ?

(unless you only have one XP machine ;-)

Or does it happen on some XP machines and not in others ?

 

 

Dataset does not exist in some Unity Editor

May 28, 2013 - 6:39am #27
Hello Alessandro,
 
Sorry for the late answer, we couldn't do the tests before.
 
Indeed, on windows 7 computer, if there is a valid camera connected, the problem doesn't occure anymore.
However, it still doesn't work on the computer running under windows XP even if there is a valid camera attached on the computer...
 
So the problem is half identified. :/ Thanks for your feedback !
 
Best Regards,
typtohms

Dataset does not exist in some Unity Editor

May 21, 2013 - 2:08am #26

Hi typthoms,

some news after the team has investigated the issue; it seems that the issue is caused by the webcam not being connected;

i.e. if the webcam is connected it should work, if the webcam is not connected (or maybe if not a valid webcam is found), then the issue appears;

could you verify that ? (i.e. that your Windows machines where the issue occurs don't have a valid webcam attached ?)

 

Dataset does not exist in some Unity Editor

May 7, 2013 - 1:54am #25

 

Thanks for your answer. 
 
Let me know if you need some other tests from me.

Dataset does not exist in some Unity Editor

May 7, 2013 - 12:25am #24

Hi, thanks for making those tests; these seem to confirm that the problem is in this function:

QCARWrapper.Instance.DataSetExists

I have filed an issue to our engineering team to look at the issue (although the challenging part will be to actually be able to reproduce it, as it only occurs on certain machines, as you observed).

 

Dataset does not exist in some Unity Editor

May 6, 2013 - 12:41am #23

Hello Alessandro,

Here are log messages :

 

 


Executing ExistsImpl of Vuforia V2.0.32...
UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:86)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------

path is: C:/Users/XXXXXXX/AppData/LocalLow/XXXXXXX/XXXXXXX/test3004/data/dataset.xml
UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:93)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------
Data set C:/Users/XXXXXXX/AppData/LocalLow/XXXXXXX/XXXXXXX/test3004/data/dataset.xml does not exist.
UnityEngine.Debug:LogError(Object)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:33)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

 

 

Yes, I confirm that the displayed path is correct. If I try to open manualy the file, it works... With C#  System.IO.File.exists(), the file is also found but not when using the Vuforia function.

As an example is often better than explanation, here is the code I put :

public static bool ExistsImpl(String path, StorageType storageType)
 	{
   		Debug.Log ("Executing ExistsImpl of Vuforia V2.0.32...");
 
        if (storageType==StorageType.STORAGE_APPRESOURCE && QCARRuntimeUtilities.IsPlayMode())
        {
			path = "Assets/StreamingAssets/" + path;
        }
 
		Debug.Log ("path is: " + path);
		
		Debug.Log("FOUND BY C# : " + System.IO.File.Exists(path));
		Debug.Log("FOUND BY VUFORIA : " +( QCARWrapper.Instance.DataSetExists(path, (int)storageType) == 1));
 
        return (QCARWrapper.Instance.DataSetExists(path, (int)storageType) == 1);
    }

And log messages :

Executing ExistsImpl of Vuforia V2.0.32...

UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:86)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------

path is: C:/Users/XXXXXXX/AppData/LocalLow/XXXXXXX/XXXXXXX/test3004/data/dataset.xml
UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:93)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------

FOUND BY C# : True
UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:95)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------

FOUND BY VUFORIA : False
UnityEngine.Debug:Log(Object)
DataSetImpl:ExistsImpl(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/Internal/DataSetImpl.cs:96)
DataSet:Exists(String, StorageType) (at Assets/Qualcomm Augmented Reality/Scripts/DataSet.cs:71)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:31)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

---------------------------------------

Data set C:/Users/XXXXXXX/AppData/LocalLow/XXXXXXX/XXXXXXX/test3004/data/dataset.xml does not exist.
UnityEngine.Debug:LogError(Object)
RealiteAugmentee:ConfigurerDataset(String, FichierConteneurJSON) (at Assets/scripts/XXXXXXX/realiteaugmentee/RealiteAugmentee.cs:33)
ScrGestionnaireCarnet:Update() (at Assets/scripts/XXXXXXX/telechargement/ScrGestionnaireCarnet.cs:42)

 

As you can see here, it's very strange because Vuforia's feedback is not the same than C# feedback...

 

 

Dataset does not exist in some Unity Editor

May 3, 2013 - 9:38am #22

One last thing to try is:

starting again from this code snippet:

if (!DataSet.Exists(dataSetPath, storageType) {
    Debug.LogError("Data set " + dataSetPath + " does not exist.");
    return false;
}

If you jump to DataSet.Exists definition, you will end up into this code (in a file called DataSet.cs):

public static bool Exists(String path, StorageType storageType)
{
    return DataSetImpl.ExistsImpl(path, storageType);
}
Then, if you jump to the definition of DataSetImpl.ExistsImpl(path, storageType), you should end up into this code:
public static bool ExistsImpl(String path, StorageType storageType)
{
    if (storageType==StorageType.STORAGE_APPRESOURCE && QCARRuntimeUtilities.IsPlayMode())
    {
        path = "Assets/StreamingAssets/" + path;
    }
    return (QCARWrapper.Instance.DataSetExists(path, (int)storageType) == 1);
}
 
Then, what I would like to ask you to do is to modify that snippet with this version:
public static bool ExistsImpl(String path, StorageType storageType)
 {
   Debug.Log ("Executing ExistsImpl of Vuforia V2.0.32...");

        if (storageType==StorageType.STORAGE_APPRESOURCE && QCARRuntimeUtilities.IsPlayMode())
        {
path = "Assets/StreamingAssets/" + path;
        }

Debug.Log ("path is: " + path);

        return (QCARWrapper.Instance.DataSetExists(path, (int)storageType) == 1);
    }

And then verify the Logged messages from the output (you should verify that those messages are printed out and that the path logged in the second log line is the same as your input path)

 

 

Dataset does not exist in some Unity Editor

May 3, 2013 - 6:46am #21

Hello Alessandro,

We have tested what you adviced on 2 computers :

-One on win 7 (it's the computer from which we have extracted the file : "log_NOT_WORKING_ocs_inventory.xml")

-One on windows XP

But it doesn't work on the 2 computers :(

Do you have other tips we can test ? 

Best Regards

Dataset does not exist in some Unity Editor

May 3, 2013 - 4:35am #20

Thanks, I got them.

I've been looking at them, but the systems really look pretty much identical, as you also mentioned (just observing some minor differences, but nothing really obvious or significant).

One thing I would still suggest to do is (in one of your "not-working" machines):

  • remove / uninstall any copy of Vuforia (including any previous / old installations), so that you have no Vuforia on the system.
  • Check the Environment Variables in your system and remove any reference to QCAR or Vuforia.
  • Remove your Unity project from the machine
  • Re-install Vuforia 2.0.32
  • Check-out the project again from SVN (or whatever versioning system you are using) and try rebuilding the project.

 

Dataset does not exist in some Unity Editor

May 3, 2013 - 3:39am #19

We sent you the logs in private messages.

Dataset does not exist in some Unity Editor

May 2, 2013 - 8:22am #18

I don't have any specifications, all I am saying is that any information that can help identify some relevant differences between the systems could help;

but it's hard to tell what info we need "up-front", as the actual cause of your issue is not known at the moment.

 

Dataset does not exist in some Unity Editor

May 2, 2013 - 7:59am #17

Hello Alessandro,

We agree to send you differences between 2 configurations, but what type of information do you really need ?

Do you want us to use a particular software to get these information ?

Best Regards

Dataset does not exist in some Unity Editor

April 25, 2013 - 7:21am #16

Ok, I acknowledge that. But I cannot reproduce the issue here. As you said, this only occurs on some PCs but not on others, and you cannot tell the difference between those.

I would need to know if there is some relevant difference between the working and the non-working PCs, as otherwise it is going to be difficult for us to do an investigation...

Dataset does not exist in some Unity Editor

April 25, 2013 - 7:01am #15

This line return "1" on PC on which it work and "0" on which it does'nt work

Debug.Log("value:"+QCARWrapper.Instance.DataSetExists(path, (int)storageType));

 

Dataset does not exist in some Unity Editor

April 25, 2013 - 5:39am #14

Yes Alessandro I confirm that we have the same code as you on one PC on which it doesn't work, and one on which it does.

(And it's normal because I remind that my project is synchronized by tortoiseSVN)

Please take a look at the printscreen I put in the attached file. It was taken from a computer on which the problem occured.

In the sourcecode of the project I sent you on my previous post, the code is also the same.

AttachmentSize
Image icon printscreen-ExistsImpl.jpg500.23 KB

Dataset does not exist in some Unity Editor

April 25, 2013 - 5:02am #13

Hi,

if you go to the definition of the DataSet.Exists() method, you should see something like:

 

public static bool Exists(String path, StorageType storageType)
    {
        return DataSetImpl.ExistsImpl(path, storageType);
    }
Then, if you open the definition of DataSetImpl.ExistsImpl() method, you should jump to some code like this:
 
public static bool ExistsImpl(String path, StorageType storageType)
    {
        if (storageType==StorageType.STORAGE_APPRESOURCE && QCARRuntimeUtilities.IsPlayMode())
        {
            path = "Assets/StreamingAssets/" + path;
        }
 
        return (QCARWrapper.Instance.DataSetExists(path, (int)storageType) == 1);
    }

Could you check that the definition of DataSetImpl.ExistsImpl() is actually showing the code snippet above on all your machines ?

 

Dataset does not exist in some Unity Editor

April 25, 2013 - 1:51am #12

 

Hello Alessandro,
 
Yes we do are on Vuforia 2_0_32, but nevertheless we have tested your suggestions so :
-Create a new Unity empty Project in which we imported the last release of the imagetargets example.
-Remove the script datasetloadbehaviour from the ARCamera in the imagetarget scene.
-Add your mydatasetloader script instead
and it still doesn't work 
 
We have tested the following too :
-Create a new Unity empty Project in which we imported Vuforia 2_0_32 extension
-Instantiate a new ARCamera in a new scene
-Remove the script datasetloadbehaviour from the ARCamera in the imagetarget scene.
-Add your mydatasetloader script instead
and it still doesn't work either
 
So on some computer it actually seems to be impossible to load a dataset which is loaded dynamically in play mode.
 
Moreover, in the test project we sent you in a previous post, you could check the vuforia version is indeed the 2_0_32 unity extension.
 
Best Regards
 
 

Dataset does not exist in some Unity Editor

April 24, 2013 - 10:17am #11

Hi, are you sure you followed these steps (from the migration guide):

From the Unity Project view, delete the following folders:

  • Editor/QCAR/Scripts
  • Qualcomm Augmented Reality
  • Plugins

I'm asking, because I see the same error that you see when I use SDK 2-0-31 but it disappears when using 2-0-32...

If you are sure that your project is 100% using 2-0-32 on all machines, then you may want to make a simpler test;

create a simple fresh new ImageTargets project (i.e. create an empty project and then import the ImageTargets sample unity package), then:

  • remove the DataSetLoadBehaviour script from your ARCamera
  • attach my script to the ARCamera

Build and run.

Dataset does not exist in some Unity Editor

April 24, 2013 - 8:33am #10

 

Hello again Alessandro,
 
I'm sorry to insist but we tried to use your script in our project, and it still doesn't work on the same PCs, and work on the others : so it behaves the same way our script does.
 
We also tried to reimport the vuforia 2_0_32 (by following the migration guide) and it doesn't work either.
 
It's very annoying for us because some of our developers can't test easily/correcly their development...
 
Greetings

Dataset does not exist in some Unity Editor

April 24, 2013 - 4:07am #9

Hi,

I am posting here a script which works (on a couple of Win7 machines on which I tried it);

it is basically like your code, perhaps the only difference is that I implement the ITrackerEventHandler interface and I load the DataSet in the OnInitialize() method; the idea is that by loading the dataset in the OnInitialize() method, we are sure that QCAR has been initialized properly before executing the dataset loading:

using UnityEngine;
using System.Collections;

public class MyDataSetLoader : MonoBehaviour, ITrackerEventHandler {
	
	private bool mLoaded = false;
	
	// Use this for initialization
	void Start () {
		QCARBehaviour qcarBehaviour = GetComponentInChildren<QCARBehaviour>();
		if (qcarBehaviour != null)
		{
			qcarBehaviour.RegisterTrackerEventHandler(this);
			Debug.Log("Registered my data set loader as tracker event handler");
		}
	}
	
	//ITrackerEventHandler interface method
	public void OnTrackablesUpdated()
	{	
	}
	
	//ITrackerEventHandler interface method
	public void OnInitialized()
	{
		if (LoadDataSet("C:/Testing/Tarmac.xml", DataSet.StorageType.STORAGE_ABSOLUTE))
		{
				Debug.Log("Loaded Data Set successfully");
		}
	}
	
	
	// Load and activate a data set at the given path.
	private bool LoadDataSet(string dataSetPath, DataSet.StorageType storageType)
	{
		// Check if the data set exists at the given path.
	    if (!DataSet.Exists(dataSetPath, storageType))
	    {
	        Debug.LogError("Data set " + dataSetPath + " does not exist.");
	        return false;
	    }
	  
	    return true;
	} 
}

 

If that does not fix the problem for you (i.e. you still see the error on some of your machines), then my second hypothesis is that on some of your machines you are still using an older version of Vuforia (even if you installed 2.0.32, there is a chance that some of your projects are still pointing to some older vuforia package);

In that case, you should check the migration guide, which shows some precautions to take:

https://developer.vuforia.com/resources/dev-guide/migrating-your-unity-project

HTH.

 

Dataset does not exist in some Unity Editor

April 24, 2013 - 12:59am #8

 

Hello Alessandro,
 
Here are codesources of a simplify release of our Unity Project we prepared for you. You can change the dataset.xml to load by changing the parameter DatasetXMLPath of the component "RA_charger" which is on the gameobject called "RA".
 
 
For information, the package contains the dataset on which the problem occured.
 
I hope, it will help you to find a reason of our problem that we have only on some computer...
 
Of course, the problem occured also with this little project.
 
Best Regards

Dataset does not exist in some Unity Editor

April 23, 2013 - 10:40am #7

Hi,

could you share your script code (not the whole code, but maybe just a cut-down version where you load the dataset from an absolute path and you check the DataSet.Exists function) ?

also, please specify if this script is attached to which object (ImageTarget, ARCamera, or other).

I would like to try and reproduce your issue.

 

Dataset does not exist in some Unity Editor

April 23, 2013 - 10:17am #6

Hi again Alessandro.

Thank you for asking to your engeneering team.

We do use the latest release of Vuforia unity extension (2_0_32). That's why we don't understand the problem... It only works on some PCs.

To explain a little bit the context in which we discovered the problem :

We are using tortoise_SVN to ease team work and we made a unity project using the latest version of Vuforia which was working well with play mode and dataset loading.
So we committed it.

If we make a checkout of that OK version of our project, some computers will have a play mode working well and some others don't.
Play mode not working well mean that we have an error on 'Dataset.exists()' saying that it doesn't found the dataset.xml file.

The strange part is that if we take the path logged in the unity error and put it in a windows explorer it retrieves the file well.
Moreover if, just before the 'Dataset.exists()' call, we do a System.IO.File.exists() of the path it says the file exists.

So we tried to identify the difference between two computers that seemed to have the same configuration, one on which it was working and another on which it was not working and we could not manage to find it.
(They had the same OS version including 32/64bits architecture, the same version of Unity, the same version of Vuforia, the same version of Java, the same version of .NET framework and so on).

We tried some tricks to ensure that it was a real problem :
  - See if it was not a problem of blank caracter (space) in the path with a simple path such as "C:/toto/dataset.xml",
  - We granted the maximum rights (total control) to every user on the files to be sure it was not the problem.
 

What could have an impact on Vuforia and could be different between the two computers according to you (apart from what is listed above) ?

Thanks for your help,

Dataset does not exist in some Unity Editor

April 23, 2013 - 1:47am #5

Hi,

I checked with our engineering team, and you should be able to use Absolute paths in Play Mode, if you pass the full path like "C:\SomeDir\...." 

However, this feature only works in the latest release (since March); what version are you using ? maybe try downloading the latest version.

 

Dataset does not exist in some Unity Editor

April 23, 2013 - 1:12am #4

Thanks for your answer Alessandro.

We tested to change rights on files but it didn't change anything :( (Moreover the problem occured on Windows XP but also on some Windows 7)

Is there a better way to test remote dataset loading in play mode ?

 

Dataset does not exist in some Unity Editor

April 22, 2013 - 11:46pm #3

Hi, this issue might be related to some file permission which is changing across different Win versions.

However, the use of absolute path (supported by Vuforia) is intended for absolute path on your device, not on PC; i.e. you can run Vuforia on PC using Play Mode, however PlayMode is only meant for testing the app prior to deployment on device; if you plan to use absolute paths you should then test the behavior on the device (the PC use case is not supported).

 

Dataset does not exist in some Unity Editor

April 22, 2013 - 11:00pm #2

We still have not found why the problem is only on some computer :(

Does anyone already have this problem ? Any idea for that ?

Log in or register to post comments