Android 升级到0.60.5后出现ReactWebViewManager错误

Android 升级到0.60.5后出现ReactWebViewManager错误,android,react-native,webview,react-native-webview,Android,React Native,Webview,React Native Webview,从react native0.59.10升级到0.60.5后,我们在构建Android时遇到了以下错误: /workspace/mobile-custom-webview/mobile-custom-webview/android/src/main/java/invisionapp/customwebview/CustomWebViewManager.java:27: error: package com.facebook.react. views.webview does not exist

从react native
0.59.10
升级到
0.60.5
后,我们在构建Android时遇到了以下错误:

/workspace/mobile-custom-webview/mobile-custom-webview/android/src/main/java/invisionapp/customwebview/CustomWebViewManager.java:27: error: package com.facebook.react.
views.webview does not exist
import com.facebook.react.views.webview.ReactWebViewManager;
                                       ^
/workspace/mobile-custom-webview/mobile-custom-webview/android/src/main/java/invisionapp/customwebview/CustomWebViewManager.java:36: error: cannot find symbol
public class CustomWebViewManager extends ReactWebViewManager {
自定义webview是根据文档创建的:
https://facebook.github.io/react-native/docs/custom-webview-android

摘自customewviewmanager.java:

...
import com.facebook.react.views.webview.ReactWebViewManager;
import javax.annotation.Nullable;

import java.util.Map;

@ReactModule(name = CustomWebViewManager.REACT_CLASS)
public class CustomWebViewManager extends ReactWebViewManager {
...
反应本机版本:

  info Fetching system and libraries information...
System:
    OS: macOS 10.14.6
    CPU: (8) x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Memory: 37.35 MB / 16.00 GB
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 8.16.1 - ~/.nvm/versions/node/v8.16.1/bin/node
    Yarn: 1.16.0 - /usr/local/bin/yarn
    npm: 6.4.1 - ~/.nvm/versions/node/v8.16.1/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 12.1, macOS 10.14, tvOS 12.1, watchOS 5.1
    Android SDK:
      API Levels: 23, 24, 25, 26, 27, 28
      Build Tools: 23.0.1, 25.0.2, 25.0.3, 26.0.1, 26.0.2, 26.0.3, 27.0.3, 28.0.0, 28.0.0, 28.0.1, 28.0.2, 28.0.3
      System Images: android-25 | Google APIs Intel x86 Atom, android-25 | Google Play Intel x86 Atom, android-26 | Google APIs Intel x86 Atom, android-27 | Google APIs Intel x86 Atom, android-28 | Google APIs Intel x86 Atom
  IDEs:
    Android Studio: 3.4 AI-183.6156.11.34.5692245
    Xcode: 10.1/10B61 - /usr/bin/xcodebuild
  npmPackages:
    react: 16.8.6 => 16.8.6 
    react-native: 0.60.5 => 0.60.5
在package.json中,我们有:

 "dependencies": {
    "react": "16.8.6",
    "react-native": "0.60.5",
    "react-native-webview": "6.8.0"
  },
复制步骤
  • 按照文档创建Android CustomWebView:
    https://facebook.github.io/react-native/docs/custom-webview-android
  • 尝试通过执行
    react native run Android
  • 描述您期望发生的事情: Android应用程序应该像以前一样构建和运行(0.59.10)

    0.60响应本机文档页面:
    我们能够解决这个问题。以下是几点建议:

    • 仔细看医生
    • 如果它是一个独立的模块(就像我们的情况一样),那么您 需要将react native webview包含在: 模块的
      build.gradle
    在消费应用程序的
    设置.gradle

    include ':react-native-webview'
    project(':react-native-webview').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-webview/android')
    
    即使在消费应用程序中,它也应该是自动链接的

    此外,还需要在中添加一个名为
    react native.config.js
    的文件 消费应用程序:

    const path = require('path');
    
      module.exports = {
       dependencies: {
         'mobile-custom-webview': {
           root: path.resolve('../mobile-custom-webview'),
         },
       },
     };
    
    在定义CustomWebView的Java文件中: 替换:


    最后,有几个方法具有不同的签名,例如:ReactWebView-->RNCWebView

    更新:我试图替换:```import com.facebook.react.views.webview.ReactWebViewManager;````使用“导入com.reactnativecommunity.webview.RNCWebViewPackage;”我收到了相同的错误:``/workspace/mobile custom webview/mobile custom webview/android/src/main/java/invisionapp/customwebview/customwebview.java:27:error:package com.reactivecommunity.webview不存在导入com.reactivecommunity.webview.rncwebview包```
    const path = require('path');
    
      module.exports = {
       dependencies: {
         'mobile-custom-webview': {
           root: path.resolve('../mobile-custom-webview'),
         },
       },
     };
    
    import com.reactnativecommunity.webview.RNCWebViewPackage;
    
    import com.reactnativecommunity.webview.RNCWebViewManager;