প্রতিক্রিয়া-স্থানীয়: অ্যাপ্লিকেশন ত্রুটি নিবন্ধভুক্ত করা হয়নি


166

আমি বর্তমানে প্রতিক্রিয়া-নেটিভ টিউটোরিয়ালগুলি দিয়ে যাচ্ছি। আমি শুরু করার টিউটোরিয়াল দিয়ে শুরু করেছি, যেখানে আমি একটি নতুন প্রতিক্রিয়া নেটিভ প্রকল্প তৈরি করেছি এবং সফলভাবে আমার ডিভাইসে প্রকল্পটি পরিচালনা করতে সক্ষম হয়েছি।

আমি তখন প্রপস টিউটোরিয়াল শুরু করেছি, আমি কোড স্নিপেটটি অনুলিপি করে আবার প্রকল্পটি চালানোর চেষ্টা করেছি এবং আমার স্ক্রিনে নিম্নলিখিত ত্রুটি বার্তাটি প্রদর্শিত হয়েছিল:


আপনি কি আপনার কোড শেয়ার করতে পারেন?
জগদীশ উপাধ্যায়

উত্তর:


435

আমি অনুমান করি যে এটি প্রকল্পের নাম এবং আপনার নিবন্ধিত উপাদানটির সাথে মিল না পেয়ে একটি ত্রুটি।

আপনি একটি নামের অর্থ দিয়ে প্রকল্প উদ্ভাবন করেছেন

react-native init AwesomeApp

তবে আপনার index.ios.js ফাইলে আপনি অন্য উপাদানটি নিবন্ধভুক্ত করেন

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

এটা যখন হতে হবে

AppRegistry.registerComponent('AwesomeApp', () => Bananas);

এটি ঠিক করার চেষ্টা করুন।


7
"কলা" কিছু Android এর জন্য কীভাবে কাজ করে works তবে এটি আইওএস-তে নেই।
সুমিত কুশওয়াহা

92
উপাদানটির সাথে মিল থাকলেও একই সমস্যার মুখোমুখি কারও জন্য -> নিশ্চিত হয়ে নিন যে অন্য কোনও টার্মিনালে আপনার আর কোনও বিক্রিয়া-নেটিভ / নোড প্রক্রিয়া নেই।
নিলেশ

1
আমার অভিজ্ঞতা থেকে, একটি সিস্টেম রিবুট জিনিসগুলি বাছাই করেছে ... এটি যতটা অদ্ভুত শোনা যায়।
কায়োট

টিউটোরিয়ালটিকে বর্তমানে "
আশ্চর্যজনক প্রকল্প

2
এবং যে লোকেরা আশ্চর্য অ্যাপ্লিকেশনটির পরিবর্তে কলা চান moduleName:@"AwesemeApp"তাদের জন্য তাদের
অ্যাপডেলিগেট.এম

42

বেশিরভাগ সময় সমস্যাটি হ'ল আপনার অন্য একটি react-native start(যেমন প্রতিক্রিয়া নেটিভ প্যাকেজার) সার্ভারটি অন্য টার্মিনাল বা টিএমইউএক্সের অন্য ট্যাবে চলছে (আপনি যদি টিএমইউএক্স ব্যবহার করছেন)।

আপনাকে সেই প্রক্রিয়াটি খুঁজে বের করতে হবে এবং এটি বন্ধ করতে হবে, সুতরাং react-native run-iosউদাহরণস্বরূপ চালানোর পরে এটি একটি নতুন প্যাকেজার সার্ভার স্থাপন করবে যা সেই নির্দিষ্ট অ্যাপ্লিকেশনের জন্য নিবন্ধভুক্ত।

কেবল এই প্রক্রিয়াটি ব্যবহার করে সন্ধান করুন:

ps aux | grep react-native

প্রক্রিয়া আইডি (পিআইডি) সন্ধান করুন এবং killকমান্ড (উদাহরণস্বরূপ kill -9 [PID]) ব্যবহার করে প্যাকেজ প্রক্রিয়াটি বদ্ধ করুন । launchPackager.commandঅন্য অপারেটিং সিস্টেম সম্পর্কে নিশ্চিত না হয়ে আপনার ম্যাকোসে অ্যাপ্লিকেশনটি খুঁজে পাওয়া উচিত ।

তারপরে run-iosআবার (বা অ্যান্ড্রয়েড) চালানোর চেষ্টা করুন । নতুন প্যাকেজার সার্ভার চালানোর পরে আপনার নতুন পথটি দেখতে সক্ষম হওয়া উচিত, যেমন:

Looking for JS files in
   /Users/afshin/Desktop/awesome-app 

এটি কাজ করে, আমি react-native start --port <otherport>react-native run-<platform>
সেবাস্তিয়ান পলমা

@ সেবাস্তিয়ানপালমা যতদূর আমি জানি, startকমান্ডটি প্যাকেজার সার্ভারটি চালায় তাই যদি আপনি ইতিমধ্যে আপনার অ্যাপ্লিকেশনটি সংকলন করে থাকেন তবে এটি করার দরকার নেই run-<platform>
আফশিন মেহরাবানী

31

MainActivityএই মত পরিবর্তন করুন ,

@Override
protected String getMainComponentName() {
    return "Bananas"; // here
}

2
একদম ঠিক! আমার সমস্যাটি হ'ল এটিই ছিল, যদিও এটি পরিবর্তনের পরিবর্তে আমি এপ্রেজিস্ট্রি.গ্রিষ্টার উপাদানটি পরিবর্তন করেছি
সিজভ

আইওএস সম্পর্কে কী?
দীনেশ আর রাজপুত

+1 টি। আমাকে কেন বিস্মিত করে যে সিআইএল কেন আমি অ্যান্ড্রয়েড / আইওএস সংস্করণটিকে অন্যরকম নাম দিতে চাইছি কিনা তা জিজ্ঞাসা করছে যখন এটি কেবলমাত্র আমার প্রকল্পের কাজ না করে এবং আমাকে এটির পরিবর্তিত করতে হবে।
টাচ করুন

আমি app.js পরিবর্তন করেছি
রোল করুন

28

আমার সমাধানটি হ'ল "AppDelegate.m" এ মডিউলটির নাম পরিবর্তন করুন

থেকে moduleName:@"AwesomeProject"

প্রতি moduleName:@"YourNewProjectName"


এটি আমার সমস্যাটি স্থির করেছে। ধন্যবাদ!
কোরি ম্যাকাবয়

রিএ্যাক্ট নেটিভ থেকে আইওএস সিমুলেটর চালানোর জন্য আমার পক্ষে কাজ করা!
এমিলিও

হ্যাঁ, এটি আমাকে সাহায্য করে। একটি অতিরিক্ত ইঙ্গিত: আপনি XCode ব্যবহার করেন, তাহলে নিশ্চিত করুন, আপনি সঠিক নাম আপনার অ্যাপ্লিকেশান-নাম (-> লক্ষ্যমাত্রা -> প্রদর্শন নাম প্রকল্প) তুলে দিয়েছ
suther

17

সবার আগে আপনার অ্যাপ্লিকেশনটি শুরু করতে হবে:

react-native start

তারপরে, আপনাকে অবশ্যই নিজের আবেদনের নামটি নিবন্ধকারকোষকের প্রথম যুক্তি হিসাবে সেট করতে হবে।

এটা ঠিক কাজ করে।

AppRegistry.registerComponent('YourProjectName', () => YourComponentName);

8

প্রকল্পে আপনার app.json ফাইল পরীক্ষা করুন। যদি লাইন অ্যাপকি না থাকে তবে আপনাকে অবশ্যই এটি যুক্ত করতে হবে

{
  "expo": {
    "sdkVersion": "27.0.0",
    "appKey": "mydojo"
  },
  "name": "mydojo",
  "displayName": "mydojo"
}

3
গত 24 ঘন্টা ধরে এই ত্রুটির সাথে হস্তক্ষেপ করা হয়েছে। এটি আমার সমস্যাটি স্থির করেছে। ধন্যবাদ!
বালাজি কর্থেশ্বরান

7

আমার ক্ষেত্রে মেইনএ্যাকটিভিটি.জভাতে এই লাইনটি মিস হয়েছে যা আমি react-native-renameক্লিপ ব্যবহার করার সময় মিস করেছি (এনপিএম থেকে)

protected String getMainComponentName() {
    return "AwesomeApp";
}

অবশ্যই আপনার অ্যাপ্লিকেশনটির নামটি পুনরায় নামকরণ করতে হবে।


4

আমি মনে করি নোড সার্ভারটি অন্য ফোল্ডার থেকে চলছে। সুতরাং এটি হত্যা করে বর্তমান ফোল্ডারে চালান।

চলমান নোড সার্ভারটি সন্ধান করুন: -

lsof -i :8081

নোড সার্ভার চলমান হত্যা:

kill -9 <PID>

যেমন: -

kill -9 1653

বর্তমান প্রতিক্রিয়া নেটিভ ফোল্ডার থেকে নোড সার্ভার শুরু করুন: -

react-native run-android


3

আমার একই সমস্যা ছিল এবং আমার কাছে মূল কারণটি হ'ল আমি অন্য একটি রিএ্যাক্ট-নেটিভ ফোল্ডার (আউইজঅ্যাপ অ্যাপ) থেকে প্যাকেজারটি চালিয়েছি (রিঅ্যাক্ট-নেটিভ স্টার্ট), যখন আমি অন্য ফোল্ডারে অন্য একটি প্রকল্প তৈরি করেছি।

নতুন অ্যাপ্লিকেশনটির ডিরেক্টরি থেকে প্যাকেজ চালানো এটি সমাধান করেছে।


1

এটি রুট উপাদানগুলির নাম ছোট হাতের সাথে শুরু হওয়ার কারণেও হতে পারে।

এটি সংশোধন করুন বা বরং একবার প্যাসকেলকেস নামে প্রকল্পটি তৈরি করুন।

যেমন নতুন হ্যালোওয়ার্ড জ্বালান


1

প্রদত্ত সমস্ত উত্তর আমার পক্ষে কার্যকর হয়নি।

আমি অন্য টার্মিনালে অন্য নোড প্রক্রিয়া চালিয়েছি, আমি সেই কমান্ড টার্মিনালটি বন্ধ করে দিয়েছিলাম এবং প্রত্যাশা অনুযায়ী সবকিছুই কাজ করেছিল।


1

আপনার এটি index.android.js / index.ios.js এ নিবন্ধন করতে হবে

এটার মত:

'use strict';

import {
    AppRegistry
} from 'react-native';

import app from "./app";

AppRegistry.registerComponent('test', () => app);

1

আমি এপস.জসন ফাইলে নিম্নলিখিতটি পরিবর্তন করে সমাধান করেছি। এটি প্রদর্শিত হচ্ছে মূলধনপত্রটি এই ত্রুটিটি ছুঁড়েছিল।

থেকে:

{
  "name": "Nameofmyapp",
  ...
}

প্রতি:

{
  "name": "nameofmyapp",
  ...
}

0

নাম পরিবর্তন করার পরিবর্তে AppRegistry,

রিএ্যাক্ট-নেটিভ আরম্ভ কলা চালান, এটি কলা প্রকল্পের জন্য রিয়েল রিয়েল রিয়েল কোড তৈরি AppRegistry.registerComponentকরবে এবং স্বয়ংক্রিয়ভাবে কলাতে নির্দেশ করবে

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

0

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

নোড। /local-cli/cli.js শুরু


1
কোন নিম্নলিখিত প্রক্রিয়া?
বিগমাডল্ফ

@bigmadwolf নোড ./local-cli/cli.js শুরু
জি সাবেত

0

আমারও একই সমস্যা ছিল। আমি অ্যান্ড্রয়েডের জন্য একটি বিক্রিয়া নেটিভ অ্যাপ্লিকেশন তৈরি করার জন্য উইন্ডোজ ব্যবহার করছিলাম এবং একই ত্রুটি ছিল। এখানে কি কাজ করেছে।

  • আপনার মূলের অ্যান্ড্রয়েড ফোল্ডারে নেভিগেট করুন।
  • নাম সহ একটি ফাইল তৈরি করুন: স্থানীয়.প্রপার্টি
  • এডিটরটিতে এটি খুলুন এবং লিখুন:

sdk.dir = C: \ ব্যবহারকারীরা \ USERNAME \ অ্যাপডাটা \ স্থানীয় \ অ্যান্ড্রয়েড \ sdk

  • আপনার মেশিনের নাম দিয়ে USERNAME প্রতিস্থাপন করুন।

অ্যাপ্লিকেশনটি সংরক্ষণ করুন এবং চালান। এটা আমার জন্য কাজ করেছে।


0

ইন্ডেক্স.জেজেজে, অ্যাপটি অ্যান্ড্রয়েড / আইওএস প্যাকেজের জন্য আপনি যে নাম দিয়েছিলেন তার থেকে আলাদা করে নামটি প্রকাশ করা হলে বিষয়টিও উপস্থিত হবে ; আপনি অ্যাপটি বের করে এলে সম্ভবত এটি ঘটেছে। সুতরাং নিশ্চিত হন যে কল করার সময় AppRegistry.registerComponent('someappname', () => App), কিছু অ্যাপ নেম নেটিভ প্যাকেজগুলি বা বিপরীত ব্যবহারের জন্যও ব্যবহৃত হয়।


0

সমস্যাটি আমার ক্ষেত্রে (উইন্ডোজ 10 ওএস) কোথায় ছিল তা আমি বুঝতে পেরেছি তবে এটি লিনাক্সেও সহায়তা করতে পারে (আপনি চেষ্টা করতে পারেন)।

ইন windows power shell, আপনি যখন নিম্নলিখিত অ্যাপ্লিকেশনটি চালাতে চান (পিসি বুট করার পরে প্রথমবারের মতো)

react-native run-android

এটি node process/JS serverঅন্যটিতে শুরু হয় console panelএবং আপনি এই ত্রুটির মুখোমুখি হন না। কিন্তু, যখন আপনি চালাতে চান অন্য অ্যাপ্লিকেশন , আপনি আবশ্যক প্রয়োজন বন্ধ করে ইতিমধ্যেই চলছে JS server console panel । এবং তারপরে অন্য অ্যাপ্লিকেশনের জন্য একই কমান্ডটি কার্যকর করুন power shell, সেই আদেশটি এই অ্যাপ্লিকেশানের জন্য স্বয়ংক্রিয়ভাবে অন্য নতুন জেএস সার্ভারটি শুরু করবে এবং আপনি এই ত্রুটির মুখোমুখি হবেন না।

অন্য অ্যাপ্লিকেশন চালানোর জন্য আপনাকে বন্ধ ও পুনরায় খোলার power shell দরকার নেই, অন্য অ্যাপ্লিকেশন চালানোর জন্য আপনাকে বন্ধ node console করতে হবে।


0

উপরের সমস্তটি পড়ার পরে, আমি খুঁজে পেয়েছি যে এর অন্য কোনও কারণ থাকতে পারে।

আমার ক্ষেত্রে:

দেশীয়-প্রতিক্রিয়া প্রতিক্রিয়া: ২.০.১

স্থানীয় প্রতিক্রিয়া: 0.60.4

এবং নিম্নলিখিত কাঠামো:

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

প্রথমে লক্ষ রাখতে হবে যে মেট্রো বিল্ডার দ্বারা পরিচালিত বিল্ডটি (বিক্রিয়া-নেটিভ রান-অ্যান্ড্রয়েড) তখন অ্যান্ড্রয়েড স্টুডিওতে ইনডেক্স.অ্যান্ড্রয়েড আপডেট হয় না তাই এটি ম্যানুয়ালি করতে হবে। এছাড়াও অ্যান্ড্রয়েড স্টুডিওতে "পড়া" হয় না

app.json (ইনডেক্স.জেডস নামের এক সাথে ডিফল্টরূপে তৈরি করা হয়েছে, যার নাম পরিবর্তন করা হয়েছে index.android.js):

 {
    "name": "authApp",
    "displayName": "authApp"
 }

এবং তাই এই মত

(আমার ক্ষেত্রে)

import {authApp as appName} from './app.json';

অ্যান্ড্রয়েড স্টুডিও অথ অ্যাপটি কী উল্লেখ করে তা জানে না এই কারণটি তৈরি করুন। আমি অ্যাপটির নামটির সাথে তার স্ট্রিংয়ের নাম উল্লেখ করে এবং অ্যাপ্লিকেশন থেকে এই আমদানিটি ব্যবহার না করে মুহুর্তটি ঠিক করেছি: জেসন:

AppRegistry.registerComponent('authApp', () => MyApp);

0

এটি আমার জন্য এটি সমাধান করেছে

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

সুতরাং আমার index.jsফাইল

import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('main', () => App);

এবং আমার package.jsonফাইল:

"dependencies": {
    "react": "^16.13.1",
    "react-dom": "~16.9.0",
    "react-native": "~0.61.5"
},

0

এই সমাধানটি আমার জন্য ডিবাগিংয়ের 2 দিন পরে কাজ করেছিল। এই পরিবর্তন :

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

প্রতি

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