API to install, uninstall, get version, check presence of a package, or fetch installed packages on Android.

Usage no npm install needed!

<script type="module">
  import reactNativeApk from '';



npm version FOSSA Status

A react-native library to get various informations about an Android app.

Getting started

$ yarn add react-native-apk

Mostly automatic installation

$ react-native link react-native-apk

Manual installation


  1. Open up android/app/src/main/java/[...]/
  • Add import be.skyzohlabs.rnapk.ReactNativeAPKPackage; to the imports at the top of the file
  • Add new ReactNativeAPKPackage() to the list returned by the getPackages() method
  1. Append the following lines to android/settings.gradle:
    include ':react-native-apk'
    project(':react-native-apk').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-apk/android')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
      compile project(':react-native-apk')

SDK 24 and higher

As of SDK version 24 (7.0) Android requires you to set up a Fileprovider for installing apks. To do so add the following to your AndroidManifest.xml file:

          android:resource="@xml/filepaths" />


In android/app/src/main/res/xml folder (create it if it does not exist) add a file named filepaths.xml and paste the following contents:

  <?xml version="1.0" encoding="utf-8"?>
  <paths xmlns:android="">
      <!-- Select one of the following based on your apk location -->
      <cache-path name="cache" path="/"/>
      <!-- <files-path name="name" path="/" />  -->
      <!-- <external-path name="name" path="/" />  -->
      <!-- <external-files-path name="name" path="path" />  -->
      <!-- <external-cache-path name="name" path="path" />  -->
      <!-- <external-media-path name="name" path="path" />  -->

In the above make sure your path is set correctly according to where your apk is on the device.

The example above shows a fileprovider for an app local cache directory i.e something like:


For more info read the android documentation: (

If the file you are trying to install is on external storage you will need the read and write external storage permissions in your AndroidManifest.xml:

  <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

For Android SDK version 26 (8.0.0) and higher you may also be required to add the install packages permission:

  <uses-permission android:name="android.permission.REQUEST_INSTALL_PACKAGES" />


import ReactNativeAPK from "react-native-apk";

// Install an app:

// Uninstall an app:

// Fetch if an app is installed on the device:
ReactNativeAPK.isAppInstalled("org.mozilla.klar", installed => {
  console.log("Is app installed?", installed);

// Get version of an installed app:
ReactNativeAPK.getAppVersion("org.mozilla.klar", version => {
  console.log("App version", version);

// Get ALL the apps installed on the device:
ReactNativeAPK.getApps(apps => {

// Get apps the user has EXPLICITLY installed on the device:
ReactNativeAPK.getNonSystemApps(apps => {

// Run an application:


FOSSA Status