[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-10-31 UTC."],[[["\u003cp\u003e\u003ccode\u003eUnavailableException\u003c/code\u003e signals that ARCore is not available on the device.\u003c/p\u003e\n"],["\u003cp\u003eSeveral subclasses provide more specific reasons for unavailability, such as an outdated APK, ARCore not being installed, or device incompatibility.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can use this exception to gracefully handle situations where ARCore functionality is not accessible.\u003c/p\u003e\n"],["\u003cp\u003eThe exception can be constructed with an optional message to provide further context.\u003c/p\u003e\n"]]],["The `UnavailableException` class indicates ARCore unavailability, with subclasses specifying reasons like an outdated APK/SDK, ARCore not being installed, device incompatibility, or user declined installation. The class has two public constructors: one default and another taking a string message. It inherits methods from `java.lang.Throwable` for managing exceptions and from `java.lang.Object` for general object functions. These subclasses throw specific exceptions based on the cause of ARCore's unavailability.\n"],null,["# UnavailableException\n\n`\npublic class\n`**UnavailableException**`\n` \n\n|---|---|---|\n| Known Direct Subclasses [UnavailableApkTooOldException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableApkTooOldException), [UnavailableArcoreNotInstalledException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableArcoreNotInstalledException), [UnavailableDeviceNotCompatibleException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableDeviceNotCompatibleException), [UnavailableSdkTooOldException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableSdkTooOldException), [UnavailableUserDeclinedInstallationException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableUserDeclinedInstallationException) |-----------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| | [UnavailableApkTooOldException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableApkTooOldException) | Thrown when the installed ARCore APK is too old for the ARCore SDK that this application was compiled using. | | [UnavailableArcoreNotInstalledException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableArcoreNotInstalledException) | Thrown when the ARCore APK is not installed on this device. | | [UnavailableDeviceNotCompatibleException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableDeviceNotCompatibleException) | Thrown when the device is not currently compatible with ARCore. | | [UnavailableSdkTooOldException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableSdkTooOldException) | Thrown when the ARCore SDK that this application was built with is too old for the installed ARCore APK. | | [UnavailableUserDeclinedInstallationException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableUserDeclinedInstallationException) | Thrown when [ArCoreApk.requestInstall(Activity, boolean)](/ar/reference/java/com/google/ar/core/ArCoreApk#requestInstall(android.app.Activity,%20boolean)) is called after the user had previously cancelled installation. | |||\n\nSubclasses of this exception are thrown when ARCore is not available. \n\nPublic Constructors\n-------------------\n\n|-----|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| ` ` | [UnavailableException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableException#UnavailableException())`()` |\n| ` ` | [UnavailableException](/ar/reference/java/com/google/ar/core/exceptions/UnavailableException#UnavailableException(java.lang.String))`(`[String](https://developer.android.com/reference/java/lang/String)` message)` |\n\nInherited Methods\n-----------------\n\nFrom `class\njava.lang.Throwable` \n\n|-----------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|\n| ` synchronized final void ` | addSuppressed`(`[Throwable](https://developer.android.com/reference/java/lang/Throwable)` arg0)` |\n| ` synchronized `[Throwable](https://developer.android.com/reference/java/lang/Throwable)` ` | fillInStackTrace`()` |\n| ` synchronized `[Throwable](https://developer.android.com/reference/java/lang/Throwable)` ` | getCause`()` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | getLocalizedMessage`()` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | getMessage`()` |\n| ` `[StackTraceElement[]](https://developer.android.com/reference/java/lang/StackTraceElement)` ` | getStackTrace`()` |\n| ` synchronized final `[Throwable[]](https://developer.android.com/reference/java/lang/Throwable)` ` | getSuppressed`()` |\n| ` synchronized `[Throwable](https://developer.android.com/reference/java/lang/Throwable)` ` | initCause`(`[Throwable](https://developer.android.com/reference/java/lang/Throwable)` arg0)` |\n| ` void ` | printStackTrace`()` |\n| ` void ` | printStackTrace`(`[PrintWriter](https://developer.android.com/reference/java/io/PrintWriter)` arg0)` |\n| ` void ` | printStackTrace`(`[PrintStream](https://developer.android.com/reference/java/io/PrintStream)` arg0)` |\n| ` void ` | setStackTrace`(`[StackTraceElement[]](https://developer.android.com/reference/java/lang/StackTraceElement)` arg0)` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | toString`()` |\n\nFrom `class\njava.lang.Object` \n\n|---------------------------------------------------------------------------------|-------------------------------------------------------------------------------------|\n| ` `[Object](https://developer.android.com/reference/java/lang/Object)` ` | clone`()` |\n| ` boolean ` | equals`(`[Object](https://developer.android.com/reference/java/lang/Object)` arg0)` |\n| ` void ` | finalize`()` |\n| ` final `[Class](https://developer.android.com/reference/java/lang/Class)`\u003c?\u003e ` | getClass`()` |\n| ` int ` | hashCode`()` |\n| ` final void ` | notify`()` |\n| ` final void ` | notifyAll`()` |\n| ` `[String](https://developer.android.com/reference/java/lang/String)` ` | toString`()` |\n| ` final void ` | wait`(long arg0, int arg1)` |\n| ` final void ` | wait`(long arg0)` |\n| ` final void ` | wait`()` |\n\nPublic Constructors\n-------------------\n\n#### public\nUnavailableException\n()\n\n### UnavailableException\n\n```java\npublic UnavailableException()\n``` \n\u003cbr /\u003e\n\n#### public\nUnavailableException\n([String](https://developer.android.com/reference/java/lang/String) message)\n\n### UnavailableException\n\n```java\npublic UnavailableException(\n String message\n)\n``` \n\u003cbr /\u003e\n\n| Details ||\n| Parameters | |-----------|---| | `message` | | |\n|------------|-------------------------------------|"]]