Start a new topic

called unimplemented OpenGL ES API

called unimplemented OpenGL ES API


Hi everyone,

 

I have a real problem with my app. I search a long time in the forum but there aren't satisfying solutions. I work on Google Glass with the trial version of the Wikitude framework. My app works all good, the page is displayed with all HTML elements I wrote, but the problem is when it needs to load 3D objects. I have this error : E/libEGL: called unimplemented OpenGL ES API

And I don't understand why. I correctly configure my manifest with the OpenGL 2.0 dependency but strangely, when the app needs OpenGL, it doesn't work. However all displays good in the screen but the 3D object isn't showed in the screen.

Here is the useful code:

The manifest:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.tech.val.testglass2">

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_GPS" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.glass.permission.DEVELOPMENT" />


<uses-feature
android:name="android.hardware.camera"
android:required="true" />
<uses-feature
android:name="android.hardware.camera.autofocus"
android:required="true"/>
<uses-feature
android:name="android.hardware.location"
android:required="true" />
<uses-feature
android:name="android.hardware.sensor.accelerometer"
android:required="true" />
<uses-feature
android:name="android.hardware.sensor.compass"
android:required="true" />
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />

<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".AccueilActivity"
android:configChanges="screenSize|orientation"
android:icon="@drawable/ic_glass_logo"
android:label="@string/title_activity_accueil">
<intent-filter>
<action android:name="com.google.android.glass.action.VOICE_TRIGGER" />
</intent-filter>

<meta-data
android:name="com.google.android.glass.VoiceTrigger"
android:resource="@xml/voice_trigger" />
</activity>
<activity android:name=".SecondActivity"
android:configChanges="screenSize|orientation"
android:theme="@android:style/Theme.NoTitleBar"></activity>
</application>

</manifest>


 

The HTML page I use:

<!DOCTYPE HTML>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta content="width=device-width,initial-scale=1,maximum-scale=5,user-scalable=yes" name="viewport">

<title></title>

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

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

<body>
<div id="loadingMessage" class="info">Loading ...</div>
<script async type="text/javascript" src="./test.js"></script>


</body>
</html>

 

The JS code I use:

var World = {
init: function initFn() {
this.createOverlays();
},

createOverlays: function createOverlaysFn() {

this.modelCar = new AR.Model("car.wt3", {
onLoaded: function() {alert("LOADED")},
enable: true
})
}
};

World.init();

 

My activity:

ArchitectView architectView;

final ArchitectView.ArchitectConfig config = new ArchitectView.ArchitectConfig(LICENCE_KEY);

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_second);

this.architectView = (ArchitectView)this.findViewById( R.id.architectView );
this.architectView.onCreate(config);
Log.e("deviceSupported", ""+ArchitectView.isDeviceSupported(getApplicationContext()));

}

@Override
public void onResume() {
super.onResume();
this.architectView.onResume();
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);

this.architectView.onPostCreate();
try {
Log.d("Success", "ARCHITECT");
this.architectView.load("test/test.html");
} catch (IOException e) {
Log.d("ERROR", e.toString());
e.printStackTrace();
}

}

@Override
protected void onPause() {
super.onPause();
this.architectView.onPause();
}

@Override
protected void onDestroy() {
super.onDestroy();
this.architectView.onDestroy();
}

 

And my layout:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.tech.val.testglass2.SecondActivity">

<com.wikitude.architect.ArchitectView android:id="@+id/architectView"
android:layout_width="match_parent" android:layout_height="match_parent"/>
</RelativeLayout>


 

Thanks for your future response.

Hi,

Does any of the forum threads help you?

Note: Our Google glass SDK is still based on SDK 4 and at the moment it's not planned to update to SDK 5.

Greetings

Nicola

Hi,

Finally I found,

I followed the Android tutorial and they use ClientTracker to intialize the tracker. But I looked in the source code of the Google Glass sample and I saw they use Tracker to initialize the tracker.I change it in my code and it works.

My app works but the error called unimplemented OpenGL ES API is always displayed in my logcat. It works but I have the same mistake. That's strange.
Login or Signup to post a comment