首页 > 解决方案 > react native for android中的图像选择器错误

问题描述

我遇到了问题。

因为我已经安装了“react-native-image-picker”,所以应用程序不会执行。

为了解决这个问题,我不得不将 AndroidManifest.xml 添加到权限代码中。和 npm 安装 jetifier。但一切都不能解决这个问题。

操作系统:Windows 10 IDE:webstorm 2020.02 android studio:最新版本

在代码下方,我遇到了错误消息。

C:\Users\ client>npx react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 1236 file(s) to forward-jetify. Using 4 workers...
info JS server already running.
info Installing the app...

> Task :react-native-image-picker:compileDebugJavaWithJavac FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.2/userguide/command_line_interface.html#sec:command_line_warnings
62 actionable tasks: 2 executed, 60 up-to-date
C:\Users\ \node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:34: error: package com.imagepicker.media does not e
xist
import com.imagepicker.media.ImageConfig;
                            ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:35: error: package com.imagepicker.permissions does
 not exist
import com.imagepicker.permissions.PermissionUtils;
                                  ^
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:36: error: package com.imagepicker.permissions does
 not exist
import com.imagepicker.permissions.OnImagePickerPermissionsCallback;
                                  ^
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:37: error: package com.imagepicker.utils.MediaUtils
 does not exist
import com.imagepicker.utils.MediaUtils.ReadExifResult;
                                       ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:38: error: package com.imagepicker.utils does not e
xist
import com.imagepicker.utils.ReadableMapUtils;
                            ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:39: error: package com.imagepicker.utils does not e
xist
import com.imagepicker.utils.RealPathUtil;
                            ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:40: error: package com.imagepicker.utils does not e
xist
import com.imagepicker.utils.UI;
                            ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:56: error: package com.imagepicker.utils does not e
xist
import static com.imagepicker.utils.MediaUtils.*;
                                   ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:57: error: package com.imagepicker.utils does not e
xist
import static com.imagepicker.utils.MediaUtils.createNewFile;
                                   ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:57: error: static import only from classes and inte
rfaces
import static com.imagepicker.utils.MediaUtils.createNewFile;
^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:58: error: package com.imagepicker.utils does not e
xist
import static com.imagepicker.utils.MediaUtils.getResizedImage;
                                   ^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:58: error: static import only from classes and inte
rfaces
import static com.imagepicker.utils.MediaUtils.getResizedImage;
^
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:86: error: cannot find symbol
  private ImageConfig imageConfig = new ImageConfig(null, null, 0, 0, 100, 0, false);
          ^
  symbol:   class ImageConfig
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:66: error: cannot find symbol
  public static final int DEFAULT_EXPLAINING_PERMISSION_DIALIOG_THEME = R.style.DefaultExplainingPermissionsTheme;
                                                                               ^
  symbol:   variable DefaultExplainingPermissionsTheme
  location: class style
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:86: error: cannot find symbol
  private ImageConfig imageConfig = new ImageConfig(null, null, 0, 0, 100, 0, false);
                                        ^
  symbol:   class ImageConfig
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:166: error: cannot find symbol
    imageConfig = new ImageConfig(null, null, 0, 0, 100, 0, false);
                      ^
  symbol:   class ImageConfig
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:168: error: package UI does not exist
    final AlertDialog dialog = UI.chooseDialog(this, options, new UI.OnAction()
                                                                    ^
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:168: error: cannot find symbol
    final AlertDialog dialog = UI.chooseDialog(this, options, new UI.OnAction()
                               ^
  symbol:   variable UI
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:274: error: cannot find symbol
      final File original = createNewFile(reactContext, this.options, false);
                            ^
  symbol:   method createNewFile(ReactApplicationContext,ReadableMap,boolean)
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:278: error: cannot find symbol
        cameraCaptureURI = RealPathUtil.compatUriFromFile(reactContext, imageConfig.original);
                           ^
  symbol:   variable RealPathUtil
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:374: error: cannot find symbol
      if (ReadableMapUtils.hasAndNotEmptyString(options, "chooseWhichLibraryTitle"))
          ^
  symbol:   variable ReadableMapUtils
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:451: error: cannot find symbol
        fileScan(reactContext, path);
        ^
  symbol:   method fileScan(ReactApplicationContext,String)
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:457: error: cannot find symbol
    final ReadExifResult result = readExifInterface(responseHelper, imageConfig);
          ^
  symbol:   class ReadExifResult
  location: class ImagePickerModule
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:503: error: cannot find symbol
      final RolloutPhotoResult rolloutResult = rolloutPhotoFromCamera(imageConfig);
            ^
  symbol:   class RolloutPhotoResult
  location: class ImagePickerModule
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:597: error: package PermissionUtils does not exist
                .explainingDialog(this, options, new PermissionUtils.OnExplainingPermissionCallback()
                                                                    ^
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:596: error: cannot find symbol
        final AlertDialog dialog = PermissionUtils
                                   ^
  symbol:   variable PermissionUtils
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:658: error: cannot find symbol
        else if (activity instanceof OnImagePickerPermissionsCallback)
                                     ^
  symbol:   class OnImagePickerPermissionsCallback
  location: class ImagePickerModule
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:660: error: cannot find symbol
          ((OnImagePickerPermissionsCallback) activity).setPermissionListener(listener);
            ^
  symbol:   class OnImagePickerPermissionsCallback
  location: class ImagePickerModule
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:667: error: cannot find symbol
                  .append(OnImagePickerPermissionsCallback.class.getSimpleName())
                          ^
  symbol:   class OnImagePickerPermissionsCallback
  location: class ImagePickerModule
C:\Users\client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:685: error: cannot find symbol
    return RealPathUtil.getRealPathFromURI(reactContext, uri);
           ^
  symbol:   variable RealPathUtil
  location: class ImagePickerModule
30 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':react-native-image-picker:compileDebugJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 25s

error Failed to install the app. Make sure you have the Android development environment set up: https://reactnative.dev/docs/environment-setup. Run CLI with --verbose flag for more details.
Error: Command failed: gradlew.bat app:installDebug -PreactNativeDevServerPort=8081
C:\Users\ client\node_modules\react-native-image-picker\android\src\main\java\com\imagepicker\ImagePickerModule.java:34: error: package com.imagepicker.media does not exist

标签: androidnode.jsreactjsreact-native

解决方案


推荐阅读