2016-01-23 14 views
51

は、 をAndroidエミュレータで実行しようとしています。違いは私のpackage.jsonbuild.gradeを使用して反応0.18.0をアップグレードし、起動時にこのエラーが発生していることです。私が知っている限り、AppRegistryは正しくインポートされています。コードをコメントアウトしても、このエラーはまだ出てきます。これは問題なくiOSで動作します。React-Native:モジュールAppRegistryは登録された呼び出し可能なモジュールではありません

私は間違っていますか?

編集:0.18.0をサポートする他のボイラープレートを試した後、私はまだ同じ問題を抱えています。

enter image description here

+0

私は0.19と0.20で同じ問題を抱えていますが、私はすべてを試しましたが運はありませんでした。 '(Any update @Dustin? – Shprink

+0

@Shprink私はまた0.20でこの問題を抱えています。また、この問題を受け取りました。「割り当てのソースの1つに、プロトタイプチェーンに列挙可能なキーがあります。」 –

答えて

22

私はちょうど反応するネイティブする0.19.0-rcプレリリースバージョンと0.18.1今日の厳しい持ついくつかのピアの依存関係の問題をアップグレードしました。

戻るあなたの質問に、私がやったことは、バックの作業ディレクトリに、その後

  1. cd android
  2. sudo ./gradlew clean

だったと react-native run-android

を実行するあなたも、あなたのNPMを再起動する必要がありますそのアップグレード後に

が、これはあなたのために働く願っています。

+3

私はgradlewコマンドを実行しようとしていますが、アンドロイドのSDKを見つけることができません私の道で。 'local.properties'ファイルに' sdk.dir = 'を付け加えました。何か案は? – steezeburger

+9

'sudo ./gradlew clean'のようなアドバイスを与えるときは、明らかに灰色のディストリビューション全体を再ダウンロードして再インストールするという巨大な**操作であることは言うまでもないでしょう。 –

+0

それは働いたので、+1。 –

1

理由はわかりませんが、index.android.jsに含まれるindex.jsファイルからAppRegistry.registerComponentを直接index.android.js内に置くように移動すると、動作するようです。

9

私は(私はその内容を見ずに例の一つを貼り付けるコピーするので)私のindex.io.jsが間違っていた、それはモジュールで終わるれたことを何私のためIOSおよび原因で同じ問題がありました代わりの

exports.title = ... 
exports.description = ... 
module.exports = MyRootComponent; 

輸出申告

AppRegistry.registerComponent('MyAppName',() => MyRootComponent); 

あなたは私が推測index.android.jsとAndroid上で同じ問題を持っている可能性が期待されます。

1

あなたは、彼らがここで

を動作しない可能性があります例のいくつかを使用している場合は、スクロールビューのための私のバージョンは、私はGenymotionでそれをアンインストールし

/** 
* Sample React Native App 
* https://github.com/facebook/react-native 
*/ 

import React, { 
    AppRegistry, 
    Component, 
    StyleSheet, 
    Text, 
    View, 
    ScrollView, 
    TouchableOpacity, 
    Image 
} from 'react-native'; 

class AwesomeProject extends Component { 
    render() { 
    return (
     <View> 
      <ScrollView 
      ref={(scrollView) => { _scrollView = scrollView; }} 
      automaticallyAdjustContentInsets={false} 
      onScroll={() => { console.log('onScroll!'); }} 
      scrollEventThrottle={200} 
      style={styles.scrollView}> 
      {THUMBS.map(createThumbRow)} 
      </ScrollView> 
      <TouchableOpacity 
      style={styles.button} 
      onPress={() => { _scrollView.scrollTo({y: 0}); }}> 
      <Text>Scroll to top</Text> 
      </TouchableOpacity> 
     </View> 
    ); 
    } 
} 

var Thumb = React.createClass({ 
    shouldComponentUpdate: function(nextProps, nextState) { 
    return false; 
    }, 
    render: function() { 
    return (
     <View style={styles.button}> 
     <Image style={styles.img} source={{uri:this.props.uri}} /> 
     </View> 
    ); 
    } 
}); 

var THUMBS = [ 
'http://loremflickr.com/320/240?random='+Math.round(Math.random()*10000) + 1, 
'http://loremflickr.com/320/240?random='+Math.round(Math.random()*10000) + 1, 
'http://loremflickr.com/320/240?random='+Math.round(Math.random()*10000) + 1 
]; 

THUMBS = THUMBS.concat(THUMBS); // double length of THUMBS 
var createThumbRow = (uri, i) => <Thumb key={i} uri={uri} />; 

var styles = StyleSheet.create({ 
    scrollView: { 
    backgroundColor: '#6A85B1', 
    height: 600, 
    }, 
    horizontalScrollView: { 
    height: 120, 
    }, 
    containerPage: { 
    height: 50, 
    width: 50, 
    backgroundColor: '#527FE4', 
    padding: 5, 
    }, 
    text: { 
    fontSize: 20, 
    color: '#888888', 
    left: 80, 
    top: 20, 
    height: 40, 
    }, 
    button: { 
    margin: 7, 
    padding: 5, 
    alignItems: 'center', 
    backgroundColor: '#eaeaea', 
    borderRadius: 3, 
    }, 
    buttonContents: { 
    flexDirection: 'row', 
    width: 64, 
    height: 64, 
    }, 
    img: { 
    width: 321, 
    height: 200, 
    } 
}); 

AppRegistry.registerComponent('AwesomeProject',() => AwesomeProject); 
1

です。次に、react-native run-androidを実行してアプリをビルドします。そしてそれは働いた。 sudo ./gradlew cleanを実行する前にまずこれを試してください。それはあなたに多くの時間を節約します。

0

うまくいけば、これは、誰か頭痛保存することができます。反応ネイティブのバージョンをアップグレードした後にこのエラーが発生しました。紛らわしいことに、それは物のアンドロイド側にしか現れなかった。

私のファイル構成は、index.ios.jsindex.android.jsを含んでいます。

app/build/build.gradleで次に

@Override protected String getJSMainModuleName() { return "index.android"; // was "index" }

index.jsからindex.android.js

entryFileを変更します。

AppRegistry.registerComponent('App',() => App);

私がしなければならなかった何にindexを変更、android/app/src/main/java/com/{projectName}/MainApplication.javaで、だった:両方のコードが含まれています

project.ext.react = [ entryFile: "index.android.js" // was index.js" ]

関連する問題