Documentation

Migration Notes

Migrate to 9.13

  • The Android Gradle Plugin version was raised to 7.2.0
    • Update classpath to com.android.tools.build:gradle:7.2.0 in build.gradle of your app's project.
    • Update distributionUrl to https\://services.gradle.org/distributions/gradle-7.3.3-all.zip in gradle/wrapper/gradle-wrapper.properties of your project.

Migrate to 9.10

  • The Android Gradle Plugin version was raised to 4.2.2
    • Update classpath to com.android.tools.build:gradle:4.2.2 in build.gradle of your app's project.
    • Update distributionUrl to https\://services.gradle.org/distributions/gradle-6.7.1-all.zip in gradle/wrapper/gradle-wrapper.properties of your project.

Migrate to 9.9

  • Minimum Android SDK Version was raised to Android 6.0 (API level 23)
    • Update minSdkVersion to 23 in build.gradle or the manifest of your app.

Migrate to 9.3

  • Minimum Android SDK Version was raised to Android 5.1 (API level 22)
    • Update minSdkVersion to 22 in build.gradle or the manifest of your app.

Migrate from 8.9.1 to 8.10

  • Minimum Android SDK Version was raised to Android 5.0 (API level 21)
    • Update minSdkVersion to 21 in build.gradle or the manifest of your app.

Migrate from 8.3.2 to 8.4

  • ArchitectView
    • deprecated:
      • getSupportedFeaturesForDevice(Context)
      • isDeviceSupported(Context)
      • isDeviceSupported(Context, int)
    • added:
      • isDeviceSupporting(Context, EnumSet<Feature>) is now the preferred way to check if the current device supports the required features

Migrate from 8.2 to 8.3

  • ArchitectView

    • changed:

      • onCreate:
        • may throw MissingFeatureException when the features set in the StartupConfiguration are not supported by the device.
        • may throw CamNotAccessibleException when no camera could be found or accessed
      • onResume:
        • may throw CamNotAccessibleException when camera permissions are not granted or no camera could be found or accessed
      • The following methods may only be called after onCreate and before onDestroy:
        • clearCache
        • callJavascript
        • destroyObjects
        • onLowMemory
        • setCullingDistance
        • getCullingDistance
        • setLocation
        • registerWorldLoadedListener
      • The following methods may only be called after onPostCreate and before onDestroy:
        • captureScreen
        • load
        • registerSensorAccuracyChangeListener
        • unregisterSensorAccuracyChangeListener
    • removed:

      • getAvailableCameraFocusModes
      • getAvailableCameraPositions
      • getCameraFocusMode
      • getCameraManualFocusDistance
      • getCameraMaxZoomLevel
      • getCameraZoomLevel
      • setCameraLifecycleListener
      • setCameraManualFocusDistance
      • setCameraPositionSimple
      • setFlashEnabled

        Use AR.hardware.camera.* of the JS API instead of the removed java methods

Migrate from 8.1 to 8.2

  • JS API:
    • AR.ImageTrackable
      • onDragBegan, onDragChanged, onDragEnded now receive ray-plane-intersection coordinates as two additional input float parameters - these parameters allow the drag gesture to be rotationally invariant and provide absolute positions for it
    • AR.ObjectTrackable
      • onDragBegan, onDragChanged, onDragEnded now receive ray-plane-intersection coordinates as two additional input float parameters - these parameters allow the drag gesture to be rotationally invariant and provide absolute positions for it

Migrage from 7.2 to 8.0

  • ArchitectStartupConfiguration:
    • Features;
      • removed:
        • Tracking2D use ImageTracking instead
  • ArchitectView
    • removed:
      • registerUrlListener use addArchitectJavascriptInterfaceListener instead
      • onCreate(String) use onCreate(ArchitectStartupConfiguration) instead
      • getSdkVersion use getSDKVersion instead
      • clearAppCache use clearCache instead
      • setDisplayMode3dInCore use WearableArchitectView.setStereoscopic3dRenderingEnabled instead
      • registerPlugin(Plugin)
      • registerPlugin(Plugin, PluginErrorCallback)
      • registerNativePlugins(String)
      • registerNativePlugins(String, String)
      • getRegisteredPlugins
  • ARCore support:
    • com.google.ar:core:1.1.0+ has to be added as dependency of the app
    • <meta-data android:name="com.google.ar.core" android:value="optional"/> or <meta-data android:name="com.google.ar.core" android:value="required"/> have to be added to the manifest.
    • minimum ARCore version 1.1.

Migrate from 7.1 to 7.2

  • JS API:
    • AR.InstantTracker
      • new method canStartTracking
      • new constructor parameter smartEnabled
      • when running with platform assisted tracking, some functionality is not available; these functions will raise an error through the error callback when called regardless
        • trackingplaneOrientation
    • AR.hardware.camera
      • new property AR.hardware.smart.deviceSupported
        • should be used to guard methods that are not available when running with platform assisted tracking
      • when running with platform assisted tracking, some functionality is not available; these functions will raise an error through the error callback when called regardless
        • enabled
        • features
        • flashLight
        • flashlightAvailable
        • focusDistance
        • focusMode
        • manualFocusAvailable
        • position
        • zoom

Migrate from 7.0 to 7.1

  • no changes required

Migrate from 6.1 to 7.0

  • Minimum Android SDK Version was raised to Android 4.4(19)
    • Update minSdkVersion to 19 in build.gradle or the manifest of your App.
  • Plugins API:
    • Plugin.h
      • deprecated:
        • void update(const std::list<RecognizedTarget>& recognizedTargets_). Use void update(const RecognizedTargetsBucket& recognizedTargetsBucket_) instead.
    • RecognizedTarget.h
      • deprecated class RecognizedTarget. Use ImageTarget instead.

Migrate from 6.0 to 6.1

Migrate from 5.3 to 6.0

  • Java API:
    • Plugins:
      • Plugin.java got moved from com.wikitude.architect.plugins to com.wikitude.common.plugins
      • ArchitectView as parameter of Plugin removed
      • JniRegistration function name has to be changed to Java_com_wikitude_common_plugins_internal_PluginManagerInternal_createNativePlugins
      • Input Plugin:
        • deprecated:
          • notifyRawCameraFieldOfViewChanged no longer used
          • notifyDynamicCameraFieldOfViewChanged use getCameraFrameSettings->setFrameFieldOfView instead
          • getInputFrameColorSpace use getCameraFrameSettings->setInputFrameColorSpace instead
          • getInputFrameSize use getCameraFrameSettings->setInputFrameSize instead
    • StartupConfiguration:
      • removed use ArchitectStartupConfiguration instead
      • moved StartupConfiguration.CameraPosition to CameraSettings.CameraPosition
    • new class ArchitectStartupConfiguration:
      • parameters are set by setters instead of as constructor parameters like in the StartupConfiguration
    • ArchitectView:
      • moved ArchitectView.CameraFocusMode to CameraSettings.CameraFocusMode
      • deprecated:
        • member getSdkVersion use static getSDKVersion instead
  • JS API:
    • The JS API is fully backwards compatible with SDK 5
    • Positioning:
      • AR.Drawable these changes affect all Drawables (e.g. AR.ImageDrawable, AR.Model):
        • removed:
          • roll use rotate.z or rotate.global.z instead
          • tilt use rotate.x or rotate.global.x instead
          • heading use rotate.y or rotate.global.y instead
        • deprecated:
          • rotate.tilt use rotate.x or rotate.global.x instead
          • rotate.heading use rotate.y or rotate.global.y instead
          • rotate.roll use rotate.z or rotate.global.z instead
      • AR.Drawable2D:
        • removed:
          • scaling use scale.x and scale.y instead
        • deprecated:
          • offsetX use translate.x or translate.global.x instead
          • offsetY use translate.y or translate.global.y instead
    • Trackers:
      • removed:
        • AR.Tracker
        • AR.Trackable2DObject:
          • getDistance
          • height
          • width
      • deprecated:
        • AR.ClientTracker use AR.TargetCollectionResource with an AR.ImageTracker instead
        • AR.CloudTracker use AR.CloudRecognitionService with an AR.ImageTracker instead
        • AR.Trackable2DObject use AR.ImageTrackable instead
        • AR.Trackable2DObject:
          • onEnterFieldOfVision use onImageRecognized instead
          • onExitFieldOfVision use onImageLost instead
    • AR.ActionRange:
      • removed:
        • geoLocation
        • positionX
        • positionY
        • width

Migrate from 5.2 to 5.3

Migrate from 4.1 to 5.0

  • Projects now require Android 4.0+

Migrate from 4.0 to 4.1

  • ArchitectView

  • The Wikitude SDK 4.1 introduces a new file format for target collections (wtc). In order to unleash the full power of the new Wikitude SDK 4.1 read this section and re-generate your targets. The old format is deprecated and will be removed in future versions.

Migrate from 3.3 to 4.0

  • Make sure to set the required permissions for your application when using the new AR.context.hardware.flashlight API.
  • Starting with Wikitude SDK 4.0 a valid license key is mandatory for starting the SDK. An empty license key will block the SDK. A free trial key can be generated on the license page (free account required).
  • The Wikitude SDK 4.0 introduces a new file format for target collections (wtc). In order to unleash the full power of the new Wikitude SDK 4.0 read this section and re-generate your targets.
  • In Version 4.0 of our SDK, we changed the initialization procedure, and we open the camera immediately when the ArchitectView is initialized, to improve the overall performance. You should not call Camera.open() after ArchitectView.onCreate(), if you need any information about the camera, you can open (and then close) it before initializing the ArchitectView.

    Any other operation on the camera when the ArchitectView is active is actually "undefined behaviour" and was not supposed to work even in previous SDK versions.

Migrate from 3.2 to 3.3

The SDK is compatible with Android 4.4, so we recommend to update ADT to the latest version and set the target SDK version to '19' in your Android Manifest XML file.

Migrate from 3.1 to 3.2

ArchitectUrlListener and SensorAccuracyChangeListener are now inner interfaces of the ArchitectView class. Update your imports in your Android code accordingly to get rid of compile time errors (ArchitectUrlListener becomes ArchitectView.ArchitectUrlListener).

Migrate from 3.0 to 3.1

Image Recognition and Tracking

The image recognition engine of Wikitude SDK 3.1 has been updated resulting in shorter time interval to successfully recognize a target image. As a consequence the format of the digital footprint of target image has changed. The format is backward compatible. Developers still can use target collections (.wtc) generated with Wikitude SDK 3.0 (prior to 27th August 2013) together with the SDK 3.1 and vice versa.

However we recommend to generate your target collections again in the Target Manager Tool and update the files when you are using Wikitude SDK 3.1

HTML Drawables

Developers using HTML Drawables in projects prior to Wikitude SDK 3.1 and like to upgrade to 3.1 need to define the viewportHeight similar to the already defined viewportWidth. In addition HTML Drawables do not have to be created as static or dynamic anymore. All are created as dynamic ones.

Migrate from 2.0 to 3.0

Wikitude SDK version 3.0 introduces Wikitude's own image recognition and tracking solution and removes support for the Vuforia Plugin.

If you are not using image recognition features in your app you only need to update the jar file and are good to go.

In case you are making use of image recognition features and want to switch from 2.0 to 3.x version remove any Qualcomm/Vuforia related assets (QCAR.so, QCAR.lib) from your project. Also the READ_PHONE_STATE permission is no longer required in your AndroidManifest.xml.

Find a step-by-step guide about how to convert your existing target collection from Vuforia to Wikitude here.