android software पैकेज आर मौजूद नहीं है




android system download (20)

कभी भी आर कक्षा को लिखने की कोशिश न करें!

क्या आपने अपनी फाइलों में सही आर क्लास आयात किया है?

करते हुए

import android.R;

के बजाय

import com.example.R;

बहुत से लोगों के लिए समस्या प्रतीत होती है। सफाई और निर्माण के बाद, मेरी कक्षाएं कभी-कभी गलत आयात करती हैं।

मुझे डरावना पैकेज मिल रहा है R मौजूद नहीं है, यह मुझे मार रहा है। कोड ठीक है मेरे पास कोड चलाने वाले बाज़ार में ऐप्स हैं।

अब यह सरल webview अनुप्रयोगों को प्रभावित कर रहा है। o.0

R.string.app_name है my main.xml और string.xml ठीक है। मैं उलझन में हूँ।

मैंने कुछ कोड "borrow" करने के लिए एक पुराना संस्करण खोला है और यह R. errors. भरा हुआ था R. errors. मैंने एक साफ किया और कुछ भी नहीं बदला, आयात के अलावा R.android शीर्ष पर जोड़ा जा रहा है।

मैं नेटबीन्स में भी लोड हुआ और मुझे वही चीज़ मिल गई। साफ काम नहीं कर रहा है। क्या मैं खुद R.java फाइल लिख सकता हूं?

यह R चीज क्या है? R नहीं है R.java अनुरूप होना चाहिए


आप कोशिश कर सकते हैं

एंड्रॉइड स्टूडियो टॉप मेनू> फ़ाइल> अमान्य कैश / पुनरारंभ करें ...

अपनी परियोजना को पुनरारंभ करने के लिए अमान्य कैश / पुनरारंभ बटन पर क्लिक करें

कुछ खंड वर्ग आर वर्ग ठीक से हल नहीं किया गया है तो फिर से rxxxx.xxx हल करें

फिर अपनी परियोजना का पुनर्निर्माण करें

आशा करता हूँ की ये काम करेगा


आर क्लास जावा एक्सएमएल आपकी एक्सएमएल फाइलों (यूआई लेआउट, इंटरनेशनललाइज स्ट्रिंग इत्यादि) से स्वत: जेनरेट की गई है। यदि कोड पहले काम कर रहा था (जैसा कि ऐसा लगता है), तो आपको किसी भी तरह इन फ़ाइलों को पुन: उत्पन्न करने के लिए अपना आईडीई बताना होगा :

  • IntelliJ में, टूल्स> एंड्रॉइड> <project> के लिए स्रोत जेनरेट करें का चयन करें
  • (यदि आप किसी अन्य आईडीई में रास्ता जानते हैं, तो इस जवाब को संपादित करने में संकोच न करें!)

जब मैंने इसका अनुभव किया, तो मैंने एक नई परियोजना बनाई, और मेरी पुरानी परियोजना से फाइलों को मेरे नए में कॉपी किया।

  1. एक नई परियोजना शुरू करें
  2. पुरानी फाइलों को नई परियोजना में जोड़ें (कॉपी और दाएं क्लिक करें लेआउट, ड्रॉबल्स, com.packagename, ...) मेरी पुरानी परियोजना फाइलों को पेस्ट करने के लिए

हालांकि, मुझे अभी भी एक ही समस्या थी: R does not exist । तब मुझे एहसास हुआ कि मैंने एंड्रॉइड स्टूडियो के मैनिफेस्ट में अपने नोटपैड से मैनिफेस्ट की प्रतिलिपि बनाई और चिपकाया था और मैंने मैनिफेस्ट फ़ाइल में पैकेज नाम नहीं बदला था।

इसलिए, जब मैंने मैनिफेस्ट में पैकेज नाम को नए प्रोजेक्ट नाम में बदल दिया, तो मैंने जो नई परियोजना बनाई थी, वह ठीक काम करता था।


बस मेरी परियोजना में त्रुटि से छुटकारा पा लिया। मैंने एक नमूना प्रोजेक्ट आयात किया था, मैंने पैकेज फ़ोल्डर्स को बदल दिया था, लेकिन मैंने जावा फाइलों में से किसी एक में पैकेज को अपडेट नहीं किया था।

इस त्रुटि का सबसे संभावित कारण 'पैकेज आर मौजूद नहीं है' यह है कि जावा या मेनिफेस्ट फ़ाइल में पैकेज नाम गलत है। सुनिश्चित करें कि यह सही है और सिंक में है और फिर एक साफ निर्माण करें।


आयात एंड्रॉइड हटाएं। आर; सभी फाइलों से .. एक बार परियोजना को साफ करें और परियोजना का निर्माण करें .... यह उत्पन्न होगा


आर ब्रेकेज का एक अन्य मामला एनोटेशन प्रोसेसिंग है

कुछ प्रसंस्करण कुछ फ़ोल्डर्स या फ़ोल्डर स्तरों में स्थित कक्षाओं को संदर्भित कर सकते हैं। यदि आप आवश्यक कक्षाओं को दूसरे स्थान पर ले जाते हैं, तो आप आर को अज्ञात वर्ग के रूप में प्राप्त कर सकते हैं।

दुर्भाग्यवश एंड्रॉइड स्टूडियो में इस समस्या का त्रुटि सूचक स्पष्ट नहीं है।


टीएल; डीआर , अगर आपको त्रुटि मिलती है तो "पैकेज आर मौजूद नहीं है", संभावित कारण हैं

  • एक्सएमएल संसाधन फाइलों में कुछ त्रुटि
    -> एक्सएमएल त्रुटियों को ठीक करें
  • वर्तमान पैकेज R पैकेज से अलग है (AndroidManifest.xml में package विशेषता देखें)
    -> R श्रेणी import com.example.android.R; , उदाहरण के लिए import com.example.android.R;
    -> या अपने स्रोत में उचित पैकेज का उपयोग करें, उदाहरण के लिए package com.example.android;
    -> या AndroidManifest.xml में package विशेषता को <manifest xmlns:android="..." package="com.example.android" ...> , यदि यह उचित है
  • प्रयुक्त R आईडी सिस्टम संसाधनों से हैं
    -> android.R आयात न करें, लेकिन android. साथ अपमानजनक आईडी को उपसर्ग करें android. , उदाहरण के लिए android.R.layout.simple_list_item_2
    आप निश्चित रूप से आईडी को उपसर्ग करने के बजाय android.R आयात कर सकते हैं, लेकिन फिर आप एप्लिकेशन R क्लास को आयात नहीं कर सकते हैं और एप्लिकेशन आईडी को उपसर्ग करना चाहिए, उदाहरण के लिए com.example.android.R.id.main_menu

R वर्ग स्वचालित रूप से एप्लिकेशन के संसाधनों से उत्पन्न होता है। इसमें इन संसाधनों के लिए id एस है और संबंधित AndroidManifest.xml फ़ाइल में <manifest> टैग में नामित पैकेज में निहित है।

यदि संसाधन XML फ़ाइलों में कोई त्रुटि नहीं है, तो R.java स्रोत R.java gen/ संकलित के नीचे एक पैकेज उपनिर्देशिका में उत्पन्न किया जाएगा।

android पैकेज में स्थित एक और R वर्ग है। इस android.R कक्षा में कुछ नेस्टेड वर्ग शामिल हैं, जो बदले में id संसाधनों और सिस्टम संसाधनों के लिए अन्य मान होते हैं।

जावा में कक्षा का उपयोग करने के लिए, आपको पूरे पैकेज के साथ कक्षा का नाम देना होगा, उदाहरण के लिए

java.util.List<Object> list = new java.util.ArrayList<Object>();

या कक्षा आयात करें और फिर पैकेज के बिना इसका इस्तेमाल करें

import java.util.List;
import java.util.ArrayList;
List<Object> list = new ArrayList<Object>();

आप पैकेज का नाम दिए बिना कक्षा का भी उपयोग कर सकते हैं, यदि मौजूदा कक्षा और उपयोग की गई कक्षा दोनों एक ही पैकेज में हैं, उदाहरण के लिए

package com.example.android;
public class A {
    /* ... */
}
package com.example.android;
public class B {
    public void useA() {
        A a = new A();
    }
}

जब भी मैं कंप्यूटर स्विच करता हूं और यूएसबी के माध्यम से स्थानांतरित फ़ाइलों से पुरानी परियोजनाओं को आयात करने की कोशिश करता हूं, तो मैं इस समस्या में भाग लेता हूं।

मेरा कामकाज सिर्फ एक नई परियोजना बनाना है और फ़ाइलों को आईडीई (वर्तमान में नेटबीन का उपयोग करके) में कॉपी (ड्रैग) करना है और पुनर्निर्माण करना है। यह एक परेशानी है और एक हैकी समाधान का थोड़ा सा है, लेकिन यह समस्या को हल करता है।

यदि यह आपके साथ होता है, तो सबसे बुरी स्थिति यह है कि आपको अपनी फ़ाइलों का बैकअप लेना पड़ सकता है, प्रोजेक्ट को हटाया जा सकता है, और वहां फ़ाइलों को खींचें और फिर से कंपाइल करें। उम्मीद है कि यह उस पर नहीं आएगा लेकिन यह आपका परमाणु विकल्प होगा।


बस यह आसान बनाने के लिए:

import your.app.package.R;

बेशक, अपने ऐप पैकेज के साथ your.app.package को your.app.package

आर संसाधन संदर्भों का उपयोग करने वाले सभी वर्गों में, किसी भी अन्य import को हटा दें , यानी import android.R;


नमूना: मेरा पैकेज com.example.mypc.f01 है , त्रुटि को ठीक करने के लिए आप नीचे गतिविधि जोड़ें:

import com.example.mypc.f01.R;


यदि आपको एंड्रॉइड स्टूडियो में यह त्रुटि आती है:

ग्रैडल मॉड्यूल फ़ाइल (ओं) -> डिफ़ॉल्ट कॉन्फ़िगर -> एप्लिकेशन आईडी सेटिंग की जांच करें।

AndroidManifest.xml -> मेनिफेस्ट पैकेज टैग देखें।

सभी स्रोत जावा फ़ाइलों में पैकेज घोषणाओं की जांच करें।

सिंक, साफ करें तो ग्रैडल के साथ पुनर्निर्माण करें।

अपनी खुद की आर फाइल कभी नहीं बनाओ। आर आपके स्रोत जावा फाइलों से स्वतः उत्पन्न होता है और सेटिंग्स बनाता है।


आर त्रुटि प्राप्त करने वाली फ़ाइलों में आप कौन सी फाइलें आयात कर रहे हैं?

आर फ़ाइल की मेरी समझ यह है कि वे Android ऐप के भीतर सभी विशेषताओं के लिए स्वचालित रूप से जेनरेट की गई संदर्भ सूचियां हैं। इसलिए, आप इसे स्वयं नहीं बदल सकते हैं।

क्या आप इस परियोजना को बनाने के लिए ग्रहण का उपयोग कर रहे हैं? ग्रहण को अद्यतन करने से पहले पुरानी परियोजनाओं को इन त्रुटियों को प्राप्त किया गया था? संदर्भ क्या हैं जो त्रुटियां प्राप्त कर रहे हैं?

यह सुनिश्चित करने के लिए जांचें कि आपने किसी अन्य ऐप में अन्य कॉपी किए गए कोड से दूसरी आर फ़ाइल आयात नहीं की है।


इस में भाग लेने वाले किसी भी व्यक्ति के लिए, मैंने नेमस्पेस फ़ोल्डरों का नाम बदलकर दोबारा प्रतिक्रिया दी। मैं बस एंड्रॉइडमैनीफेस्ट को संपादित करना भूल गया था और इसलिए मुझे यह त्रुटि मिली।

सुनिश्चित करें कि आप इसे भी जांचें।


मेरे पास था: "त्रुटि: पैकेज आर मौजूद नहीं है" और माना जाता है कि जावैक को आरजेवा तक पहुंच नहीं थी।
इसलिए मैंने% PROJ_LOC% \ gen को सोर्सपाथ में जोड़ा, और यह काम किया! Sourcepath =% PROJ_LOC% \ src;% PROJ_LOC% \ जनरल

मैं एंड्रॉइड स्टूडियो या चींटी (या एक्सएमएल) का उपयोग नहीं कर रहा हूं।


यदि आप एंड्रॉइड स्टूडियो में विकास कर रहे हैं और पैकेज नाम का पुन: उपयोग कर रहे हैं तो आपको एंड्रॉइड मेनिफेस्ट और ऐप ग्रेडल फ़ाइल में पैकेज का नाम बदलना चाहिए।

 applicationId "change here your package name"

और मेनिफेस्ट फ़ाइल में

 package="change here your package name"

मैं अपनी समस्या हल करता हूं:

पैकेज आर मौजूद नहीं है

Goto AndroidManifest.xml फ़ाइल और 1 9 से minSDKVersion="17" को बदल दिया


खुद को आरजेवा लिखने का कोई फायदा नहीं है क्योंकि यह हर निर्माण पर बदल जाता है,

बस उदाहरण के लिए R.something का उपयोग करना याद रखें : R.raw.filename अंदरूनी कक्षाओं से जिसमें पैकेज मान है AndroidManifest.xml के अंदर पैकेज मान के समान है

क्योंकि आर संसाधन आईडी को वर्तमान एप्लिकेशन या लाइब्रेरी के लिए परिभाषित किया गया है और यदि वे संकलन समय पर मौजूद हैं तो वे सभी चेक किए गए हैं, इसलिए उन्हें "कोड" से एक्सेस करने की अनुमति नहीं मिलती है जो वर्तमान एप्लिकेशन या लाइब्रेरी को लक्षित नहीं करता है और कर सकता है अन्य स्थानों में इस्तेमाल किया जाना चाहिए।


मुझे लगता है कि यह काम करने के लिए प्रयोग किया जाता है लेकिन अब यह नहीं ..

ऐसा तब हो सकता है जब आप अपनी मैनिफ़ेस्ट फ़ाइल के अंदर पैकेज नाम बदल दें

<manifest
   package="com.example.android...."

अगर आप पैकेज का नाम बदलना चाहते हैं

  1. मैनिफेस्ट फ़ाइल में पैकेज नाम मैन्युअल रूप से बदलें।
  2. अपने आरजेजा वर्ग और प्रेस एफ 6 पर क्लिक करें। यह आपको कक्षा को अन्य पैकेज में स्थानांतरित करने की अनुमति देगा, और उस वर्ग के सभी संदर्भ अपडेट किए जाएंगे।

आर। जावा एक स्वत: जेनरेटेड फ़ाइल है, यदि आमतौर पर xml फ़ाइल में त्रुटियां होती हैं तो यह आमतौर पर संकलित नहीं होती है।

नहीं, आप अपनी खुद की आरजेजा फ़ाइल नहीं लिख सकते हैं, इसे संसाधन कंपाइलर द्वारा उत्पन्न किया जाना है।

अपनी सभी एक्सएमएल फाइलों में त्रुटियों की जांच करें।





android