Start a new topic

Sample app doesn't show anything

Sample app doesn't show anything


I have installed the SDK and the sample apps that come along with it. After some initial trouble, I was able to make application start up in my device (Karbonn, Titanium S5 with android version 4.1.2). But when I access the POI samples (which is what I am interested in developing), noting shows up in the camera view. The camera opens fine and I can see the things around me, but no POI information. I am not sure what I need to do to make this work. Am I missing something, any setup ?

Thanks

 

Hi there!

POIs are loaded after first location update. Please also try the "Browsing POIs" sample section - In the POI Radar sample you see where places are located.

Kind regards,
Andreas

But I don't see any markers painted on the camera view! When I run the samples am I supposed to see the markers or not? The Browsing Poi Deatils doesn't show any markers. I just see a normal camera view.

 

Thanks for your help

I created a another simple app following the POI example. I have the same exact issue as the samples. No markers are painted on the camera view! I have put some JS alerts in the js file inside the 'onLocationChangedFn' and the 'createMarkerAtLocation' functions and the alerts show up properly (which hopefully means that the javascript functions are being called properly. But still the marker doesn't show at the geo location.

09-21 11:32:50.809: D/dalvikvm(6108): GC_FOR_ALLOC freed 1255K, 29% free 8947K/12551K, paused 18ms, total 19ms
09-21 11:32:50.839: D/dalvikvm(6108): GC_CONCURRENT freed 15K, 24% free 9561K/12551K, paused 12ms+3ms, total 33ms
09-21 11:32:50.849: E/deviceSupported(6108): true
09-21 11:32:50.849: I/ArchitectWebView(6108): ARchitect Build: d4452f2
09-21 11:32:50.919: D/dalvikvm(6108): GC_CONCURRENT freed 561K, 22% free 9826K/12551K, paused 12ms+2ms, total 33ms
09-21 11:32:50.919: D/dalvikvm(6108): WAIT_FOR_CONCURRENT_GC blocked 9ms
09-21 11:32:50.939: D/dalvikvm(6108): GC_FOR_ALLOC freed 733K, 21% free 9920K/12551K, paused 17ms, total 17ms
09-21 11:32:50.969: D/dalvikvm(6108): GC_CONCURRENT freed 608K, 20% free 10147K/12551K, paused 12ms+2ms, total 30ms
09-21 11:32:50.969: D/dalvikvm(6108): WAIT_FOR_CONCURRENT_GC blocked 17ms
09-21 11:32:51.049: E/Web Console(6108): Uncaught ReferenceError: AR is not defined at null:1
09-21 11:32:51.109: I/Adreno200-EGL(6108): <qeglDrvAPI_eglInitialize:299>: EGL 1.4 QUALCOMM build: Nondeterministic AU_msm8625_REFS/TAGS/JB_REL_RB5_QRD_D20130228_CL3285357_release_AU (CL3285357)
09-21 11:32:51.109: I/Adreno200-EGL(6108): Build Date: 03/01/13 Fri
09-21 11:32:51.109: I/Adreno200-EGL(6108): Local Branch:
09-21 11:32:51.109: I/Adreno200-EGL(6108): Remote Branch: m/refs/tags/jb_rel_rb5_qrd_D20130228
09-21 11:32:51.109: I/Adreno200-EGL(6108): Local Patches: NONE
09-21 11:32:51.109: I/Adreno200-EGL(6108): Reconstruct Branch: NOTHING
09-21 11:32:51.179: E/libEGL(6108): called unimplemented OpenGL ES API
09-21 11:32:51.179: W/Adreno200-ES20(6108): <qgl2DrvAPI_glHint:90>: GL_INVALID_ENUM
09-21 11:32:51.179: E/libEGL(6108): called unimplemented OpenGL ES API
09-21 11:32:52.289: D/dalvikvm(6108): GC_FOR_ALLOC freed 1121K, 23% free 9784K/12551K, paused 19ms, total 22ms
09-21 11:32:52.949: E/BufferQueue(6108): dequeueBuffer: mMinUndequeuedBuffers=2 exceeded (dequeued=6)
09-21 11:32:52.949: I/Choreographer(6108): Skipped 109 frames!  The application may be doing too much work on its main thread.
09-21 11:32:52.979: E/BufferQueue(6108): dequeueBuffer: mMinUndequeuedBuffers=2 exceeded (dequeued=5)
09-21 11:32:55.139: D/dalvikvm(6108): GC_FOR_ALLOC freed 867K, 25% free 9523K/12551K, paused 24ms, total 24ms
09-21 11:32:55.199: D/dalvikvm(6108): GC_CONCURRENT freed 8K, 22% free 10918K/13959K, paused 12ms+5ms, total 47ms
09-21 11:33:08.909: E/Web Console(6108): Uncaught TypeError: Property 'onLocationChanged' of object is not a function at null:1
09-21 11:33:08.909: E/Web Console(6108): Uncaught TypeError: Property 'onLocationChanged' of object is not a function at null:1

 

I see two issues in the above log: on regarding the unimplemented OpenGL ES API and the other regarding "Uncaught TypeError: Property 'onLocationChanged' "

 

Are those the reasons for the marker not showing up? How do I fix those and get the marker on the screen. Please help ...

 

Thanks

Can anyone help please?

Hi!

It seems like you have a problem with the correct declaration of the onLocationChanged()-trigger in your javascript file. Have you made any modifications in the javascript file of that samples world?

If so could you please post the javascript code of your newly defined onLocationChanged()-method in the javascript file, so i can further investigate the reasons for you problems.

Thx,

Markus

No I haven't, other than adding the alert statements for debugging.

Here is the source code from that file:

var World = {

    markerDrawable: new AR.ImageResource("marker.png"),

    init: function initFn() {

        AR.context.onLocationChanged = World.onLocationChanged;
    },

    onLocationChanged: function onLocationChangedFn(latitude, longitude, altitude, accuracy) {

        //alert(markerDrawable);
        
        AR.context.onLocationChanged = null;

        World.createMarkerAtLocation(latitude + 0.01, longitude - 0.0005, altitude - 0.06, 'Titel', 'Description');
    },

    // New: Two additional parameters: title, description
    createMarkerAtLocation: function createMarkerAtLocationFn(latitude, longitude, altitude, title, description) {

        
        var markerLocation = new AR.GeoLocation(latitude, longitude, altitude);
        var markerDrawable = new AR.ImageDrawable(World.markerDrawable, 2.5, {

            // New: Rendering order (zOrder)
            zOrder: 0
        });

        // New: Title Label with options who define rendering order, offsets and label style
        var titleLabel = new AR.Label(title, 1, {
            zOrder: 1,
            offsetY: 0.55,
            style: {
                textColor: '#FFFFFF',
                fontStyle: AR.CONST.FONT_STYLE.BOLD
            }
        });

        // New: Description Label (same new options as for the title label)
        var descriptionLable = new AR.Label(description, 0.8, {
            zOrder: 1,
            offsetY: -0.55,
            style: {
                textColor: '#FFFFFF'
            }
        });

        var markerObject = new AR.GeoObject(markerLocation, {
            drawables: {

                // New: two more cam drawables: title and description label
                cam:
            }
        });
        alert("Hello");
    }
};

World.init();

The function is called using the following line from the activity. I have hard coded a lat long just for simplicity:

ARActivity.this.callJavaScript("World.onLocationChanged", new String { "12.8","77.2","0.0","27" });

Source of index.html:

<!DOCTYPE HTML>
<html>

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

    <title></title>

    <script src="architect://architect.js"></script>
    <script type="text/javascript" src="ade.js"></script>

    <link rel="stylesheet" href="css/default.css">
</head>

<body>
    <script src="js/poiwithlabel.js"></script>
</body>
</html>

Thanks for helping out.

Is there no solution to this issue? I am surprised why no one has answered! I am working on a time critical project and would like to zero in on a AR product soon. I was hoping that I could finish my POC and buy a license soon. But without solving this issue, I won't be able to make a decision.

Hi again!

I had a look at your js-file and it seemed fine. The only problem might be, if you haven't changed marker-image, that the "marker.png" file resides in the assets folder so the correct path would be "assets/marker.png" for the AR.ImageResource. 

But my guess is that the main problem is that you manually call the onLocationChanged-trigger via the callJavascript()-method. 

The easier way to inject a custom location into your Architect-world is to call the setLocation()-method of the ArchitectView-class. 

Additionally you could check the coordinates you are receiving in the locationChanged()-method in your javascript file.

Hope that helps,

Markus

marker.png is not an issue. Anyway, since this was not working, I moved on to follow the tutorials and created the simplest application of painting a yellow circle marker at the current location. Even that was not working and that is what I had posted about at:

http://stackoverflow.com/questions/18956538/wikitude-sdk-markers-are-not-showing-in-the-camera-view.

Then I tried the same yellow circle example on another device and it worked! This was a Sony Experia device with Android 4.2.2. The orginal device that I was trying with was a Karbon Titanium S5 with Android 4.1.2. Why would a simple yellow circle painting depend on the device? Any clues? If this is answered, may be the marker.png will also start working I think.

Another clue is if I simply chage the text inside the sample div when the location is changed, it works fine. Only the "new AR.GeoObject(myGeoLocation, {drawables: {cam: myCircle}});" is NOT working.

Can I get an answer faster? I have been stuck on this issue for quite some time now. Thanks

 

Hi again!

I have a couple of questions to your setup in order to get a better understanding of your problem. What version of the SDK are you working with? When you install the WikitudeSDKSamples.apk that comes with the SDK package on both devices is it also working on both? Is Wikitude working on both devices?

Can you assure that the exact same code is working on one device and not on the other? If thats the case could you check the your phone's compatibility with the ArchitectSDK by calling ArchitectView.isSupported() e.g. from your onCreate() method in your java activity. This method checks if the phone fulfills the minimum requirements for architect.

On the Karbonn device, is it still that you get a javascript error like: "Uncaught TypeError: Property 'onLocationChanged' of object is not a function at null:1" or is that resolved? Do you get any other error message in logcat apart from the OpenGL ES error message?

thx,

Markus

Markus,

Thanks for the response again. WikitudeSDKSamples.apk worked only in Sony Experia and not in the Karbon phone. I tried it 2-3 other phones as well. It worked in one of the cheaper samsung phones and didn't work on another of the same kind. So I am not sure what is going on. It can't be this falky and this dependent on the device!

On the Karbonn device, I am not getting the javascript error anymore: "Uncaught TypeError: Property 'onLocationChanged' of object is not a function at null:1". That is fixed.

I have already tried this statement in the onCeate:

"Log.e("deviceSupported", ""+ArchitectView.isDeviceSupported(getApplicationContext()));"

and it prints "deviceSupported" -  "true" correctly in the logcat.

K. Ramesh

Hi again!

ok in that case the device should fulfill the minimum requirements for architect. It seems to be that the problem with the Karbonn phone is device specific. As we don't have the device in-house its difficult for me to find the root-cause of the problem. I still believe its location related, because the camera and UI only gets updated once a locationChanged()-method is triggered in the architect world. Could you check if the AR.context.locationChanged - method is called and what values it receives in your architect world on the Karbonn device.

Additionally could you check if the Image Recognition samples of the SDK-samples project are working on that device?

thx,

Markus

Markus,

 

Thanks for the quick response. Like I mentioned in my previous post, it is not just the Karbon device where the SDK sample is not working, but also in couple of other Samsung devices. The one that I am currently testing with is a Samsung Duos device (Model GT-S7562, Android Version-4.0.4).

One clue: Google maps updates the current location in the devices where the app doesn't work. What I can confirm is that the Location Services is turned on in these devices (both wifi network and GPS). Also, "deviceSupported"-"true" is printing in l keeps sayingogcat.Another clue is that the Wikitude Sample app, especially the Browsing POIs keeps saying "Trying to find out where you are" even while Google Maps has identified the location correclty.

One question: do I need an active SIM in the phone for location lisetner to be working? In the test phones, I don't have SIMs, only wifi and GPS.

Thx again

K. Ramesh
Login or Signup to post a comment