<uses-library>
Stay organized with collections
Save and categorize content based on your preferences.
Note: Google Play uses the <uses-library>
elements declared
in your app manifest to filter your app from devices that don't meet its
library requirements. For more information about filtering, see
Filters on Google Play.
- syntax:
-
<uses-library
android:name="string"
android:required=["true" | "false"] />
- contained in:
-
<application>
- description:
-
Specifies a shared library that the application must be linked against.
This element tells the system to include the library's code in the class
loader for the package.
All the android
packages, such as android.app
,
android.content
, android.view
, and android.widget
,
are in the default library that all applications are automatically linked
against. However, some packages, such as maps
, are
in separate libraries that aren't automatically linked. Consult the
documentation for the packages you're using to determine which library
contains the package code.
The order of <uses-library>
tags is significant. It affects class lookup
and resolution order when the application loads. Some of the libraries might have
duplicate classes, and in that case the library that comes first takes priority.
This element also affects the installation of the application on a particular device and
the availability of the application on Google Play. If this element is present and its
android:required
attribute is set to "true"
, the
PackageManager
framework won't let a user install the application unless the library is present on the
user's device.
The android:required
attribute is described in detail in the following section.
- attributes:
-
android:name
-
The name of the library. The name is provided by the
documentation for the package you are using. An example of this is
"android.test.runner"
, a package that contains Android test
classes.
android:required
-
Boolean value that indicates whether the application requires the
library specified by
android:name
.
The default is "true"
.
Introduced in: API level 7.
- introduced in:
- API Level 1
- see also:
-
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-02-10 UTC.
[[["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 2025-02-10 UTC."],[],[],null,["# <uses-library\u003e\n\n**Note:** Google Play uses the `\u003cuses-library\u003e` elements declared\nin your app manifest to filter your app from devices that don't meet its\nlibrary requirements. For more information about filtering, see\n[Filters on Google Play](/google/play/filters).\n\nsyntax:\n:\n\n ```xml\n \u003cuses-library\n android:name=\"string\"\n android:required=[\"true\" | \"false\"] /\u003e\n ```\n\ncontained in:\n:\n `\n `[\u003capplication\u003e](/guide/topics/manifest/application-element)`\n `\n\ndescription:\n\n:\n Specifies a shared library that the application must be linked against.\n This element tells the system to include the library's code in the class\n loader for the package.\n\n\n All the `android` packages, such as [android.app](/reference/android/app/package-summary),\n [android.content](/reference/android/content/package-summary), [android.view](/reference/android/view/package-summary), and [android.widget](/reference/android/widget/package-summary),\n are in the default library that all applications are automatically linked\n against. However, some packages, such as `maps`, are\n in separate libraries that aren't automatically linked. Consult the\n documentation for the packages you're using to determine which library\n contains the package code.\n\n\n The order of `\u003cuses-library\u003e` tags is significant. It affects class lookup\n and resolution order when the application loads. Some of the libraries might have\n duplicate classes, and in that case the library that comes first takes priority.\n\n\n This element also affects the installation of the application on a particular device and\n the availability of the application on Google Play. If this element is present and its\n `android:required` attribute is set to `\"true\"`, the\n [PackageManager](/reference/android/content/pm/PackageManager)\n framework won't let a user install the application unless the library is present on the\n user's device.\n\n\n The `android:required` attribute is described in detail in the following section.\n\nattributes:\n:\n\n `android:name`\n :\n The name of the library. The name is provided by the\n documentation for the package you are using. An example of this is\n `\"android.test.runner\"`, a package that contains Android test\n classes.\n\n `android:required`\n :\n Boolean value that indicates whether the application requires the\n library specified by `android:name`.\n\n - `\"true\"`: the application doesn't function without this library. The system doesn't let the application install on a device that doesn't have the library.\n - `\"false\"`: the application uses the library if present, but is designed to function without it if necessary. The system lets the application install, even if the library isn't present. If you use `\"false\"`, you are responsible for checking at runtime that the library is available.\n\n\n To check for a library, you can use reflection to determine\n whether a particular class is available.\n\n\n The default is `\"true\"`.\n\n Introduced in: API level 7.\n\n\nintroduced in:\n: API Level 1\n\nsee also:\n:\n - [PackageManager](/reference/android/content/pm/PackageManager)"]]