প্রতিক্রিয়া-নেটিভ: মডিউল অ্যাপরেজিস্ট্রি কোনও রেজিস্টার্ড কলযোগ্য মডিউল নয়


114

আমি বর্তমানে একটি এন্ড্রয়েড এমুলেটরটিতে ES6 প্রতিক্রিয়া নেটিভ-ওয়েবপ্যাক-সার্ভার চালু করার চেষ্টা করছি । পার্থক্যটি হ'ল আমি আমার package.jsonএবং build.gradeপ্রতিক্রিয়া ব্যবহারের জন্য আপগ্রেড করেছি এবং 0.18.0বুটে এই ত্রুটিটি পাচ্ছি। আমি যতদূর সচেতন AppRegistryতাই সঠিকভাবে আমদানি করা হয়। আমি কোডটি মন্তব্য করতে চাইলেও এই ত্রুটিটি এখনও আসে। এটি ইস্যু ছাড়াই আইওএসে কাজ করে।

আমি কি ভুল করছি?

সম্পাদনা করুন: 0.18.0 সমর্থন করে এমন অন্যান্য বয়লারপ্লেট চেষ্টা করার পরে, আমি এখনও একই সমস্যাটি নিয়ে আসছি।

এখানে চিত্র বর্ণনা লিখুন


(যেকোনো আপডেটের '@Dustin: আমি 0.19 এবং 0.20 সঙ্গে একই সমস্যা হচ্ছে না, আমি সবকিছু চেষ্টা করেছি কিন্তু কোন ভাগ্য?
Shprink

@ এসপ্রিঙ্ক আমি এই সমস্যাটি 0.20 দিয়েও পাচ্ছি। এছাড়াও এই সমস্যাটি পেয়েছেOne of the sources for assign has an enumerable key on the prototype chain.
জোশ ফেরারারা

উত্তর:


58

আমি কেবল প্রাক-প্রকাশের সংস্করণ 0.18.1সহ কিছু পিয়ার নির্ভরতার সমস্যা থাকা শক্ত -নেটিভ প্রতিক্রিয়া হিসাবে আপগ্রেড করেছি 0.19.0-rc

আপনার প্রশ্ন ফিরে, আমি কি ছিল

  1. cd android
  2. sudo ./gradlew clean(কিভাবে পরিষ্কার কাজ করে সে সম্পর্কে আরও তথ্যের জন্য এখানে )

তারপরে ওয়ার্কিং ডিরেক্টরিতে ফিরে যান এবং চালান react-native run-android

সেই আপগ্রেডের পরে আপনার এনপিএম পুনরায় চালু করা উচিত।

আশা করি এটি আপনার জন্য কাজ করে


3
আমি গ্রেডলু কমান্ডটি চালানোর চেষ্টা করছি তবে এটি আমাকে বলে চলেছে যে ANDROID_HOMEআমার পথে থাকা সত্ত্বেও এটি অ্যান্ড্রয়েড এসডিকে খুঁজে পাচ্ছে না । আমি local.propertiesফাইলটি যুক্ত করে দিয়েছি sdk.dir=। কোন ধারনা?
স্টিজেবার্গার

42
কিছু করার মতো পরামর্শ দেওয়ার সময় sudo ./gradlew clean, এটি উল্লেখ করা ভাল লাগবে যে এটি একটি বিশাল ক্রিয়া যা দৃশ্যত পুনরায় ডাউনলোড করে পুরো গ্রেড বিতরণ পুনরায় ইনস্টল করে।
সজকিপান হোয়েসজেউস্কি

1
ত্রুটি পেতে মডিউল এইচএমআরক্লিয়েন্ট কোনও রেজিস্টার্ড কলযোগ্য মডিউল নয় (কলিং সক্ষম)। জেএস ফাইলে যে পরিবর্তনগুলি করা হয়েছে তা আমি দেখতে পাচ্ছি না :(
দিনেশ আর রাজপুত

আপনার অ্যান্ড্রয়েড এসডিকে অবস্থানটি সন্ধান করতে, অ্যান্ড্রয়েড স্টুডিও খুলুন এবং কনফিগার হিট করুন, আপনি শীর্ষে একটি পাথ দেখতে পাবেন যা সম্ভবত এমন কিছু:/Users/karim/Library/Android/sdk
করিম মুর্তাবিত

আমি আরএন ০.৪৪-এ আপডেট করার চেষ্টা করার পরে এটি আমার পক্ষে কিছুই করেনি
স্লিপসঅন নিউজপ্যাপারস

15

আইওএস-এ আমার একই সমস্যা ছিল এবং আমার কারণ হ'ল আমার সূচি.আই.এস.জেএসটি ভুল ছিল (কারণ আমি এর উদাহরণগুলির একটি বিষয় কপি না করেই অনুলিপি করেছিলাম), এটি মডিউল রফতানি ঘোষণার সাথে শেষ হয়েছিল was

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

পরিবর্তে প্রত্যাশিত

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

আমার অনুমান অনুসারে index.android.js দিয়ে অ্যান্ড্রয়েডে আপনার একই সমস্যা থাকতে পারে।


13

এই সমস্যার একটি প্রধান কারণ হতে পারে আপনি যেখানে একটি প্লাগইন ইনস্টল করে থাকতে এবং এটি লিঙ্ক করতে ভুলে যেতে পারেন

এটা চেষ্টা কর:

react-native link

আপনার অ্যাপ্লিকেশনটি আবার চালান।

আশা করি এটি সাহায্য করবে। মন্তব্য করুন আমাকে জানাবেন । ধন্যবাদ।


1
react-native linkপ্যাকেজের নাম ব্যতীত চলমান অবহেলিত এবং পরবর্তী প্রকাশে মুছে ফেলা হবে।
হর্ষাদ মাদায়

9

আমি কেবল যুক্ত করে এই সমস্যাটি সমাধান করেছি

import { AppRegistry } from "react-native";
import App from "./App";
import { name as appName } from "./app.json";  
AppRegistry.registerComponent(appName, () => App);

আমার সূচক.জেএস

এটি আপনার সূচক.জেজে বিদ্যমান রয়েছে তা নিশ্চিত করুন


3

আমার জন্য আমার ইস্যুটি বান্ডিল করার সময় ভুল এন্ট্রি-ফাইলটি রাখছিল।

আমি App.js কে আমার এন্ট্রি-ফাইল হিসাবে ব্যবহার করছিলাম, অতএব অ্যাপ্লিকেশনটি অ্যাপরেজিস্ট্রিটি খুঁজে পেল না

সঠিক:

react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

ত্রুটিপূর্ণ:

react-native bundle --platform android --dev false --entry-file App.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/

আপনি আমার মস্তিষ্ককে বাঁচিয়েছিলেন ... এমন দিন ছিল যখন আমি কমান্ডটি চালু করলাম তা বুঝতে চেষ্টা করছিলাম: react-native bundle --platform android --dev false --entry-file index.js --bundle-output android /app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res সবকিছুই কাজ করেছে, পরিবর্তে যদি আমি ফাস্টলেন দিয়ে প্রকাশ করি তবে এই ত্রুটিটি দিয়ে অ্যাপটি ক্র্যাশ হয়ে গেছে: Module AppRegistry is not a registered callable module (calling runApplication) বিল্টড্র্যাডলে আমি সম্ভবত ময়লা ছিলাম, একটি ভুল এন্ট্রি ফাইল! আবার ধন্যবাদ!
নোবেডি

3

আশা করি এটি কারও মাথা ব্যথা বাঁচাতে পারে। আমার প্রতিক্রিয়া-নেটিভ সংস্করণটি আপগ্রেড করার পরে আমি এই ত্রুটিটি পেয়েছি। বিভ্রান্তিমূলকভাবে এটি কেবল জিনিসের অ্যান্ড্রয়েড দিকে উপস্থিত হয়েছিল।

আমার ফাইল কাঠামোতে একটি index.ios.jsএবং একটি অন্তর্ভুক্ত রয়েছে index.android.js। উভয় কোড থাকে:

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

আমি কি কি ছিল ছিলেন android/app/src/main/java/com/{projectName}/MainApplication.java, পরিবর্তন indexকরার জন্য index.android:

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

তারপর app/build/build.gradleপরিবর্তন entryFileথেকে index.jsথেকেindex.android.js

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

3

আমার জন্য কেবল কম্পিউটারটি পুনরায় চালু করা এটি ঠিক করে দিয়েছে। (আমার ত্রুটিটি ছিল "মডিউল অ্যাপ্লিকেশনটি কোনও নিবন্ধিত কলযোগ্য মডিউল নয় (রান অ্যাপ্লিকেশন কলিং) জেএস ইঞ্জিন: হার্মিস")

আর একটি শীর্ষ উত্তর যা এখানে অনুপস্থিত এবং সম্ভবত এটি কাজ করেছিল তা হ'ল নোড প্রক্রিয়াগুলি হ'ল:

killall -9 node

[ মডিউল অ্যাপরেজিস্ট্রি কলযোগ্য মডিউলটি নিবন্ধিত নয় (কল অ্যাপলিকেশন কল) ]


2

আমি জানি না কেন তবে আমি যখন সূচি.অ্যান্ড্রয়েড.জেএস-এর অন্তর্ভুক্ত থাকা সূচক.জএস ফাইল থেকে অ্যাপগ্রিজি.গ্রিস্টারকম্পোন্ট্ট সরান, তখন সরাসরি কাজ করে বলে মনে হয়।


1

আপনি যদি কয়েকটি উদাহরণ ব্যবহার করেন তবে সেগুলি কাজ করবে না

এখানে স্ক্রোল দেখার জন্য আমার সংস্করণ

/**
 * 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, এতে আপনার অনেক সময় সাশ্রয় হবে।


1

পুনঃসূচনা প্যাকেজকারী আমার জন্য কাজ করেছে। কেবল নেটিভ প্যাকেজারকে মেরে ফেলুন এবং এটি আবার চালান।


1

যদি আপনি অ্যান্ড্রয়েড সহ উইন্ডোগুলিতে এই ত্রুটির মুখোমুখি হন

আপনার মূল ডিরেক্টরি অ্যাপ্লিকেশন ফোল্ডারটি খুলুন এবং অ্যান্ড্রয়েড ফোল্ডারে যান।

     cd android 
     gradlew clean

আপনার অ্যাপ্লিকেশনটি আবার শুরু করুন দেশীয় রান-অ্যান্ড্রয়েডের প্রতিক্রিয়া

ভুম এটা কাজ করে


0

আমার ক্ষেত্রে, আমার index.jsভুলভাবে আমার লঞ্চার জেএসের পরিবর্তে অন্য জেএসটির দিকে আমার পয়েন্টস রয়েছে, যা এতে নেই AppRegistry.registerComponent()

সুতরাং, index.jsক্লাসটি নিবন্ধ করার জন্য ফাইলটি আপনার পয়েন্টটি নিশ্চিত করুন ।


0

আমার ইস্যুটি আমার ইনোটিফাই সর্বাধিক ব্যবহারকারীর_ওয়াচগুলি বাড়িয়ে স্থির করা হয়েছিল:

sudo sysctl fs.inotify.max_user_watches=1280000

0

আমার জন্য এটি প্রতিক্রিয়া প্যাকেজের পরবর্তী সংস্করণে রিএ্যাক্ট-নেটিভ নির্ভরতার সমস্যা ছিল, আমার প্যাকেজটিতে যখন পুরানোটি নির্দিষ্ট করা হয়েছিল। আমার প্রতিক্রিয়া সংস্করণটি আপগ্রেড করা এই সমস্যার সমাধান করেছে।


0

আমার জন্য কেবল আমি এইভাবে প্রতিক্রিয়া নেটিভের সাথে যুক্ত করেছি: প্রতিক্রিয়া নেটিভ লিঙ্ক


সম্ভবত এটি একটি বিস্তৃত।

0

npm start - --set-cache

সম্ভবত বন্দরটি ইতিমধ্যে ব্যবহৃত। আমি প্রথম যখন নেটিভ রান-অ্যান্ড্রয়েড প্রতিক্রিয়া করি এবং তারপরে এনপিএম শুরু করি তখন আমি একই ধরণের সমস্যার মুখোমুখি হই। আমি এটি এর মতো সমাধান করি: প্রথমে 8081 পোর্টে চলমান প্রক্রিয়াটির আইডি পান: সুডো lsof -i: 8081


0

এক্সপোতে আমি এই ত্রুটিটি পেয়েছি কারণ আমি ভুল উপাদানটির নামটি রপ্তানি করেছি

const Wonk = props => (
  <Text>Hi!</Text>
)

export default Stack;

0

নিম্নলিখিত সমস্যাগুলি সমাধান করে আমি এই সমস্যাটি সমাধান করেছি:

  1. সিডি অ্যান্ড্রয়েড
  2. । / গ্রেডলিউ ক্লিন
  3. টাস্কিল / এফ / আইএম নোড.এক্স
  4. অ্যান্ড্রয়েড থেকে অ্যাপ আনইনস্টল করুন

0

আপনি Windows মেশিন ব্যবহার করে থাকেন আপনাকে যা করতে হবে cd androidতারপর ./gradlew cleanতারপর চালানোreact-native run-android

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.