【问题标题】:React native, Unable to resolve module for static image反应本机,无法解析静态图像的模块
【发布时间】:2015-12-08 08:23:43
【问题描述】:

我正在使用 react-native 0.14.1

react-native run-android

[3:10:56 PM] <START> find dependencies
Unable to resolve module image!ic_action_android_back_white3 from /Users/lion/Desktop/Developer/AwesomeProject/NewTrackActivity.js
Unable to resolve module image!ic_action_android_back_white3 from /Users/lion/Desktop/Developer/AwesomeProject/NewTrackActivity.js

如果我在 Genymotion 中强制打开我的应用程序,它会找不到我的图像。

需要未知模块图像!ic_action_android_back_white3

我尝试将图像移动到./android/app/src/main/res/drawable-xxx./assets/drawable-xxx,但都不起作用。

【问题讨论】:

  • this 工作!对我来说

标签: android image react-native packager


【解决方案1】:

您是否尝试过像新的资产管理器允许的那样安装映像?在documentation 中有描述。

对 Image 组件使用以下道具。选择正确的相对路径,不要忘记扩展

<Image source={require('./my-icon.png')} />

【讨论】:

  • 我试过了。它总是有效的。但我对我的案子很怀疑。这种方法和图像有什么区别! ?
  • new asset manager 允许您即时添加图像,而无需重新构建整个项目。 1. Same system on iOS and Android.5. Adding and changing images doesn't require app recompilation, just refresh the simulator as you normally do. (Official documentation)
【解决方案2】:

有时,您的图像可能包含@2x@3x 用于docs 中提到的不同屏幕dpi。在这种情况下,路径应指定不带@2x@3x 后缀的图像名称。比如图片文件名是img@2x.png:

<Image source={require('./img.png')} />

【讨论】:

    【解决方案3】:

    重启你的 react 打包器。这对我有用。

    【讨论】:

    • 这对我不起作用我也尝试通过react-native bundle --platform android --dev true --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/ 构建捆绑但仍然不起作用。
    • 值得一提的是,正在运行的 React 打包程序不会获取您添加到项目中的新目录/资源路径,否则如果您重新启动打包程序会获取这些目录/资源路径,即正在运行的打包程序不会如果您添加 ./img/favicon.png 则不会拾取,但如果您重新启动打包程序,它将添加 ./img 并且添加的任何后续文件将在重新加载时被拾取,而无需重新启动打包程序。
    【解决方案4】:

    我认为这是在初始构建后添加资产的问题。

    我关闭了模拟器和捆绑程序,清除了缓存并运行了 RN - run-ios/run-andriod - 然后就没有问题了。

    我也想知道如果只是运行链接可能会工作,但没有得到测试。

    【讨论】:

      【解决方案5】:

      您可以将图像保存在该文件夹本身中,而不是保存在资产文件夹中,并将路径指定为:

      <Image source={require('../download.png')} />
      

      它对我有用

      【讨论】:

        【解决方案6】:

        对于带有大写字符的文件,我收到了相同的错误消息无法解析模块

        我的解决方案 - 将文件名重命名为小写

        在代码中使用:

        <Image source={require('../download.png')} />
        

        版本:
        react native - 0.62
        expo - 38

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-03
          • 2021-09-13
          • 2019-03-12
          • 2021-12-10
          • 2022-01-04
          • 1970-01-01
          • 2018-05-28
          • 2021-09-03
          相关资源
          最近更新 更多