Собственный модуль Android React Native хорошо работает при отладке, но не работает при выпуске

Я создал собственный модуль Android в своем приложении React Native, чтобы получить список установленных пользователем приложений. он хорошо работает в Debug, но не работает в Release.

*Примечание: я также пытался использовать пакет npm под названием react-native-android-installed-apps, но он не работает, поэтому я решил создать собственный модуль.

Я не знаю, что не так, из-за чего мой собственный модуль работает в Debug, но не работает в Release. Это будет здорово, и я буду очень признателен, если кто-нибудь сможет указать мне, что не так.

Вот мой код:

@ReactMethod
public void getUserInstalledApps(Callback successCallback) throws JSONException {
 PackageManager pm = reactContext.getPackageManager();
 WritableArray array = new WritableNativeArray();
 List<AppList> apps = new ArrayList<AppList>();
 Gson g = new Gson();
 List<PackageInfo> packs = reactContext.getPackageManager().getInstalledPackages(0);
 for (int i = 0; i < packs.size(); i++) {
   PackageInfo p = packs.get(i);
     if ((!isSystemPackage(p))) {
       String appName = p.applicationInfo.loadLabel(reactContext.getPackageManager()).toString();
       String packages = p.applicationInfo.packageName;
       apps.add(new AppList(appName, packages));
     }
   }

   for (AppList co : apps) {
     JSONObject jo = new JSONObject(g.toJson(co));
     WritableMap wm = convertJsonToMap(jo);
     array.pushMap(wm);
   }

   successCallback.invoke(array);
}

private boolean isSystemPackage(PackageInfo pkgInfo) {
  return (pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0;
}

public class AppList {
 private String name;
 private String packages;

 public AppList(String name, String packages) {
   this.name = name;
   this.packages = packages;
 }

 public String getName() {
   return name;
 }
   
 public String getPackages() {
   return packages;
 }
}
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
175
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я исправил это, добавив некоторые правила защиты для моего собственного модуля.

Другие вопросы по теме