react本机android本机模块在调试时运行良好,但在发布时不起作用

dz6r00yl  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(383)

我在react原生应用程序中创建了一个android原生模块,以获取用户安装的应用程序列表。它在调试时运行良好,但在发布时不起作用。

  • 注意:我也尝试过使用一个名为react native android installed apps的npm包,但它不起作用,所以我决定创建一个native模块。

我不知道是什么原因导致我的本机模块在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;
 }
}
vzgqcmou

vzgqcmou1#

我已经通过为我的本机模块添加一些pro-guard规则来修复它

相关问题