RNSound.IsAndroid错误(React Native)

时间:2017-07-20 16:09:48

标签: android react-native

得到此错误 - 未定义不是对象(评估RNSound.IsAndroid)

我已经使用过this-react-native link react-native-sound

my index.android.js code is-

import React from 'react';
import { TouchableWithoutFeedback, Text } from 'react-native';
import Sound from 'react-native-sound';

class MyComponent extends Component {
  playSound() {
    const mySound = new Sound('x.mp3', Sound.MAIN_BUNDLE, (e) => {
      if (e) {
        console.log('error', e);
      } else {
        console.log('duration', mySound.getDuration());
        mySound.play();
      }
    });
  }

  render() {
    return (
      <TouchableWithoutFeedback onPress={this.playSound.bind(this)}>
         <Text>Play Sound!</Text>
      </TouchableWithoutFeedback>
    );
  }
}

6 个答案:

答案 0 :(得分:4)

大多数情况下,此错误表示程序包未正确链接。

确认是否是这种情况: -

  1. 转到android/app/src/main/java/.../MainApplication.java
  2. 确保您在此文件中import com.zmxv.RNSound.RNSoundPackage;
  3. 进行此导入
  4. 确保此方法具有此调用new RNSoundPackage(),如下所示。

    @Override
    protected List<ReactPackage> getPackages() {
        return Arrays.<ReactPackage>asList(
            new MainReactPackage(),
            new RNSoundPackage() // <-- New
        );
    }
    
  5. 如果这不起作用,请按照此Wiki中所述的手动过程进行操作:https://github.com/zmxv/react-native-sound/wiki/Installation

答案 1 :(得分:1)

我通过停止反应包装程序解决了这个问题,运行以下命令:

rm -rf node_modules/
npm install
react-native link react-native-sound
rn-nodeify --install --hack

清理项目并重新构建应用程序。 rn-nodeify是为非反应原生包创建的,但在我的情况下,这适用于react-native-sound

答案 2 :(得分:0)

解决了它:

  1. 删除项目的node_modules文件夹。
  2. 将package.json文件中的react-native-sound依赖关系更新为:

    "react-native-sound": "git+ssh://git@github.com:zmxv/react-native-sound.git#HEAD"
    
  3. 开火npm install

答案 3 :(得分:0)

我已通过X代码中的手动链接库解决了此问题,实际上我确实做了react-native链接,该链接未给出任何错误,因此假定它已链接,但是当我检查xcode时,则看到此库未链接,所以当我拥有手动链接并创建新版本,然后运行良好。

答案 4 :(得分:0)

react-native link react-native-sound
cd ios
pod install

fixed my problem

注意

答案 5 :(得分:0)

修复了本机反应0.61.5的错误: 在Podfile中添加

pod'RNSound',:path =>'../ node_modules / react-native-sound'

pod安装