कक्षा के टुकड़े को फुलाने में त्रुटि


161

मुझे त्रुटि मिलती है

Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment

जब मैं पोर्ट्रेट और लैंडस्केप मोड के माध्यम से स्विच करता हूं। मैं टुकड़ों का उपयोग कर रहा हूँ। मेरा xml है:

 <LinearLayout android:id="@+id/mainLayout"
               android:orientation="horizontal"
               android:layout_width="fill_parent"
               android:layout_height="wrap_content" >

    <ListView android:id="@+id/android:list"
              android:layout_height="wrap_content"
              android:layout_width="fill_parent"/> 

    <fragment android:id="@+id/fragmentDetails"
              android:layout_height="fill_parent"
              android:layout_width="fill_parent"
              class="de.androidbuch.activiti.task.TaskDetailsFragment"/> 
</LinearLayout>

अगर मैं लैंडस्केप और पोर्ट्रेट मोड के माध्यम से स्विच करता हूं तो सब कुछ ठीक काम करता है। लेकिन जब मैं अपने टुकड़े पर क्लिक करता हूं (और मैं अपने टुकड़े को देख सकता हूं) और फिर मुझे प्राप्त होने वाली अन्य मोड पर स्विच करें। किसी भी विचार मैं इसे कैसे हल कर सकते हैं? यहाँ कुछ उत्तर मिले लेकिन इनमें से किसी ने भी मेरी मदद नहीं की ...

06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity         
ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}:   android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1736)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1752)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3097)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.access$1600(ActivityThread.java:123)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:997)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Handler.dispatchMessage(Handler.java:99)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.os.Looper.loop(Looper.java:126)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.main(ActivityThread.java:3998)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invokeNative(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at java.lang.reflect.Method.invoke(Method.java:491)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at dalvik.system.NativeStart.main(Native Method)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636): Caused by: android.view.InflateException: Binary XML file line #11: Error inflating class fragment
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:688)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:724)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.rInflate(LayoutInflater.java:727)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:391)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.view.LayoutInflater.inflate(LayoutInflater.java:347)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:227)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Activity.setContentView(Activity.java:1771)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at de.androidbuch.activiti.task.TaskActivity.onCreate(TaskActivity.java:83)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1048)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1700)
06-21 14:55:05.600: ERROR/AndroidRuntime(7636):     ... 12 more

क्या आप अपने लेआउट और लेआउट-लैंड फ़ोल्डर में अलग-अलग लेआउट फाइलें रख रहे हैं?
नाथन अंजीर

क्या आप पूर्ण त्रुटि लॉग प्रदान कर सकते हैं, "गतिविधि शुरू करने में असमर्थ ..." के बाद की पंक्तियों सहित
डेव

@ नथन अंजीर: हाँ मैं करता हूँ .. लेकिन त्रुटियाँ हो रही हैं ..
tsync

@ क्या: यहाँ तुम जाओ .. किसी भी विचार?
tsync

लैंडस्केप लेआउट कोड की आवश्यकता है, और यह भी उपयोगी है कि आपके कॉल सेटऑनवेंट व्यू में हो सकते हैं और यह भी कि कैसे आप पोर्ट्रेट मोड में गतिविधि बंद कर रहे हैं जैसा कि मैं मान रहा हूं कि आप हैं। फिलहाल पर्याप्त जानकारी नहीं है। एपीआई डेमो में FragmentLayout उदाहरण को देखने से आपको मदद मिल सकती है क्योंकि ऐसा लगता है कि आप भी कुछ ऐसा ही कर रहे हैं।
PJL

जवाबों:


131

जैसा कि hdemirchian ने कहा, उपयोग करना सुनिश्चित करें:

import android.support.v4.app.Fragment;

और यह भी सुनिश्चित करें कि टुकड़ा के उपयोग की गतिविधि FragmentActivityनियमित के बजाय फैली हुई है Activity,

import android.support.v4.app.FragmentActivity;

FragmentActivityकक्षा पाने के लिए ।


12
यह बहुत बढ़ गया, लेकिन मेरे लिए यह ऐप को फिर से शुरू करने के दौरान क्रैश हो गया, और मैं पहले से ही v4 Fragment और v4 FrsgmentActivity का उपयोग कर रहा हूं - अधिक सटीक AppCompatActivity होना।
जोसेफ

4
यह कोई उपाय नहीं है। आयात android.support.v4.app.Fragment; कुछ भी नहीं बदलता है। वास्तव में यह अप्रयुक्त और अनावश्यक आयात है।
f470071

7
धन्यवाद, एक पक्ष यह है कि AppCompatActivity FragmentActivity का वंशज है।
abedfar 20

लेकिन मैं खंजर के टुकड़े का उपयोग कर रहा हूं, और खंजर का टुकड़ा हमेशा टुकड़े का विस्तार नहीं करता है
343475052

96

अपवाद तब android.view.InflateException: Binary XML file line: #... Error inflating class fragmentहो सकता है जब आप कॉल करने getActivity()से पहले अपने टुकड़े के अंदर हेरफेर करते हैं onActivityCreated()। ऐसे मामले में आप एक गलत गतिविधि संदर्भ प्राप्त करते हैं और उस पर भरोसा नहीं कर सकते।

उदाहरण के लिए अगला पैटर्न गलत है:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);

    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...); - another problem: button is null

    return view;
}

सही पैटर्न # 1

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
        Bundle savedInstanceState) 
{
    final View view = inflater.inflate(R.layout..., container, false);

    Button button = view.findViewById(R.id...);
    button.setOnClickListener(...);

    return view;
}

सही पैटर्न # 2

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    Button button = getActivity().findViewById(R.id...);
    button.setOnClickListener(...);
}

@MaximKorobov आप कॉल कर सकते हैं getActivity()अंदर onActivityCreated()या किसी भी बाद में जीवन चक्र विधि में, लेकिन इससे पहले onDestroyView()
ग्रिगोरि ए।

बहुत बहुत धन्यवाद, इसने काफी मदद की!
शॉटगन निंजा

धन्यवाद :-) इसने मुझे बहुत समय बचा लिया :)
user1007522

मैं इस बारे में और अधिक जानकारी प्राप्त करना पसंद करूंगा, मुझे एक छिटपुट दुर्घटना हो रही है और मुझे लगता है कि यह समस्या हो सकती है। हालांकि अधिकांश समय कोड ठीक काम करता है इसलिए यह जानना कठिन है
डैनियल विल्सन

पैटर्न 2 मेरे लिए इसे हल कर सकता है। उंगलियों को पार कर। उसके लिए धन्यवाद।
जोसेफ

53

36

मेरी भी यही त्रुटि थी। मैं दिन भर खुदाई कर रहा था, डननो लेकिन मुझे लगता है कि मैंने इस समस्या पर ~ 25 समाधान की कोशिश की। दोपहर 2 बजे तक किसी ने भी काम नहीं किया, मुझे पता चला कि मैं इस लाइन को एप्पीएल एक्सपीएल में याद कर रहा था:

<meta-data android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />

वह लाइन <application>टैग के अंदर थी । मुझे उम्मीद है कि यह किसी के लिए मदद करता है। जीएल।


3
मेरे हीरो। आप जैसे लोग SO महान बनाते हैं!
कैप्ड्रैगन

5
कृपया बताएं कि क्या चल रहा है। इस लाइन का लाभ क्या है?
मंसूर फहद

2
धन्यवाद, मेरा दिन बचाओ। एंड्रॉइड पर Google मानचित्र का उपयोग करने का प्रत्येक नमूना अलग तरीके से काम करता है, मुझे आश्चर्य है कि क्या कोई मानक है।
23:28 पर user2812866

22

मुझे भी यही समस्या थी। मेरे लिए समाधान FragmentActivity के भीतर super.onCreate और setContentView का आदेश था

निम्नलिखित आदेश ठीक काम करता है:

    super.onCreate(savedInstanceState);
    setContentView(R.layout.fc_activity_list_profiles);

3
यह इसे ठीक क्यों करता है?
स्पेंसर

1
एक जावा विधि में, superहमेशा विधि की शुरुआत में कहा जाना चाहिए।
स्टीफन ब्रुकर्ट

11
@ StéphaneBruckert यह हमेशा ऐसा मामला नहीं super.method()है जिसे पहले कहा जाना चाहिए। यह निर्भर करता है कि सुपर क्लास की विधि क्या करती है। इसके मामले में काम को ठीक से FragmentActivityकरने के लिए आवश्यक कुछ आरंभीकरण होता setContentViewहै। हालाँकि एक अन्य विधि (कहते हैं onKeyUp) में आप सशर्त रूप से कार्रवाई के साथ कुछ काम करना चाह सकते हैं, लेकिन super.onKeyUpउस स्थिति में जब आप super.onKeyUpफ़ंक्शन के बहुत अंत में कॉल करना चाहेंगे ।
3

यह शायद यह भी ध्यान देने योग्य है कि super()(सुपरक्लास कंस्ट्रक्टर) किसी भी बाल वर्ग के निर्माता में कहा जाने वाला पहला फ़ंक्शन होना चाहिए, हालांकि इसे कॉल करना अनिवार्य नहीं है (यह पूरी तरह से विस्तारित की जा रही कक्षा पर निर्भर करेगा)।
२३

17

XML में फ्रेगमेंट्स को नेस्ट नहीं किया जा सकता है

इसे कठिन तरीके से जानें - यदि आप <fragment>(संभावित रूप से) गतिशील रूप से लोड किए गए टुकड़े के अंदर XML लेआउट आधारित टैग को घोंसले में डालते हैं FragmentManager, तो आप अजीब त्रुटियों को प्राप्त करना शुरू करते हैं, अपने टुकड़े xml को बढ़ाने की कोशिश कर रहे हैं।

पता चला, कि यह समर्थित नहीं है - यह ठीक काम करेगा यदि आप विशुद्ध रूप से FragmentManagerदृष्टिकोण के माध्यम से ऐसा करते हैं।

मुझे यह समस्या हो रही थी क्योंकि मैं <DrawerLayout>xml से एक टुकड़े को लोड करने की कोशिश कर रहा था , और यह onCreateView()विधि में एक दुर्घटना का कारण बन रहा था जब मैंने बैक स्टैक को पॉप किया।


क्या यह अभी भी समर्थित नहीं है? के रूप मेंappcompat-v7:23.3.0
thanassis

हाँ, मैं xml अंदर टुकड़ा घोंसला कर रहा हूँ। मुझे इस पर गौर करना होगा।
केडोगेकर

लेकिन समस्या के लिए समाधान / हैक मौजूद हैं: stackoverflow.com/a/14695397/860488
मोर्टन होल्मगार्ड

2
पुष्टि के लिए इस अनुभाग के अंत में नोट देखें: developer.android.com/about/versions/…
फिलिप

निश्चित नहीं है कि समाधान SO सरल क्यों है। मेरे लिए, बस काम के <fragment>साथ की जगह <frameLayout>। मैं अभी भी इसका पता लगा रहा हूं। - stackoverflow.com/a/19167009/5477548
yoad w

16

मुझे वही समस्या आ रही थी जो आप झेल रहे हैं। शीर्ष पर किसी भी सुझाव ने मेरी मदद नहीं की। बाद में, मैंने पाया कि मुझे जो कुछ करना था वह मेरे आयात को ठीक कर रहा था:

import android.app.Fragment;

सेवा:

import android.support.v4.app.Fragment;

धन्यवाद, इस समाधान ने मेरे लिए भी काम किया। मैं 2 दिनों से इस मुद्दे से जूझ रहा था। अंत में आपके समाधान ने मेरे लिए काम किया। थैंक्स hdemirchian ..
लक्ष्मण

आप कमाल के है! मेरी समस्या विपरीत थी - Fragment विज़ार्ड डिफ़ॉल्ट रूप से android.support.v4.app.Fragment आयात करता है। और मेरी मुख्य गतिविधि android.app.Activity फैली हुई है।
इंडस्ट्रियल कंट्रोल फ्रीक

12

आपने कोशिश की है:

 <fragment
            android:name="de.androidbuch.activiti.task.TaskDetailsFragment"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

1
आपने हमें 1 xml फ़ाइल दिखाई है, लेकिन आपके पास 2 एक / लेआउट / / एक लेआउट-लैंड / में होना चाहिए
Blundell

12

सुनिश्चित करें कि टुकड़े के onCreateView विधि में कोई अपवाद नहीं उठाया गया है। यदि इस पद्धति में कोई अपवाद उठाया जाता है, तो logcat अपवाद का सटीक विवरण नहीं दिखाएगा, इसके बजाय यह हमेशा संदेश दिखाता है:

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.fragment" 
on path: DexPathList[[zip file "/data/app/com.package/base.apk"],
nativeLibraryDirectories=[/data/app/com.package/lib/arm64, /vendor/lib64, /system/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)

बस यह जोड़ने के लिए कि लेई क्या कह रहा है, अपने ऑनक्रीव्यू के अंदर कोड के चारों ओर पकड़ने की कोशिश करें और वास्तविक मूल कारण का पता लगाएं। धन्यवाद लेई!
स्वरूप

6

यदि आपका TaskDetailsFragmentविस्तार हो रहा है android.app.Fragment, तो इसमें बदलाव करें onCreateView()

अपना वह दृश्य लौटाएँ, जिसे आप Fragment में दिखाना चाहते हैं या LayoutInflater का उपयोग करके अपने लेआउट को रूपांतरित करना चाहते हैं और उसे वापस लौटाएँ

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View mainview = inflater.inflate(R.layout.main, null);
    return mainview;
}

आशा है कि यह काम करेगा। :)


6

आप वर्ग पथ की जाँच करें, यह देखने वाला हो सकता है कि आपके एक्सएमएल वर्ग = "de.androidbuch.activiti.task.TaskDetailsFragment" में उपरोक्त परिभाषा गलत हो सकती है।


6

मुझे यह त्रुटि विभिन्न कारणों से प्राप्त हो रही थी।

प्रजनन करने कि प्रक्रिया:

~> मेरा मुद्दा यह था कि मैंने एक नया रिक्त अनुप्रयोग बनाया।

~> मैंने तब फ़ाइल ~> नई फ़ाइल मेनू से एक कस्टम टुकड़ा उत्पन्न किया।

~> लेआउट और बटन आदि जोड़कर टुकड़े को अनुकूलित करने के लिए आगे बढ़ा।

~> ऑटो जनरेट की गई गतिविधि में नए कस्टम टुकड़े को संदर्भित किया गया_आई.एक्सएमएल जो कि एप्लिकेशन बनाते समय मेरे लिए बनाया गया था। ऐसा करने से XML को मेरे लिए ऑब्जेक्ट बनाने की अनुमति मिली।

फ़ाइल ~> नई फ़ाइल मेनू के माध्यम से कस्टम टुकड़ा पैदा करते समय Heres पकड़ है यह ऑटो एक इंटरफ़ेस फ़ंक्शन स्टब उत्पन्न करता है और इसे टुकड़ा वर्ग फ़ाइल के निचले भाग में रखता है।

इसका मतलब है कि आपके MyActivity class को इस इंटरफ़ेस को लागू करना होगा। यदि ऐसा नहीं होता है, तो उपरोक्त त्रुटि केवल xml से टुकड़े को संदर्भित करते समय होती है। एक्सएमएल में फ्रैगमेंट के लिए संदर्भ को पूरी तरह से हटाकर, और MyActivity.java वर्ग फ़ाइल में कोड के माध्यम से टुकड़ा बनाने के लिए Logcat इस मुद्दे को विस्तार से और इंटरफ़ेस के बारे में शिकायत करते हुए अधिक संक्षिप्त त्रुटि उत्पन्न करता है। यह प्रोजेक्ट टेम्प्लेट एक्टिविटी + फ्रैगमेंट में प्रदर्शित होता है। हालाँकि, <~ कि प्रोजेक्ट टेम्प्लेट इंटरफ़ेस स्टब उत्पन्न नहीं करता है।


5

मेरे लिए यह स्टैक ट्रेस में स्क्रॉल करने के बाद था, जिसमें मुझे android.permission.ACCESS_NETWORK_STATE की अनुमति नहीं मिली।

इस अनुमति को जोड़ने के बाद इसे ठीक कर दिया गया


1
स्वयं के लिए नहीं: " पूरे स्टैक ट्रेस के माध्यम से स्क्रॉल करें । धन्यवाद @Gil।
बटांडवा

4

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

जब आपको त्रुटि मिलती है, क्या यह केवल तब होता है जब आप आइटम को लैंडस्केप मोड में या केवल पोर्ट्रेट मोड में या दोनों पर क्लिक करते हैं? क्या आपकी कार्यदिशाएँ फ़्रेग्मेंटेशन गतिविधि एक लेआउट फ़ाइल का उपयोग करती है जिसमें परिदृश्य और पोर्ट्रेट मोड के बीच विसंगतियां हो सकती हैं?


आपके उत्तर के लिए धन्यवाद .. अच्छी तरह से मैं केवल परिदृश्य मोड में एक टुकड़ा है और पोर्ट्रेट मोड में नहीं। इसलिए मैं केवल विखंडन देखने के लिए लैंडस्केप मोड में क्लिक कर सकता हूं। और मैं फिर से लैंडस्केप मोड में जाने के बाद मुझे यह त्रुटि मिलती है ...
tsync

यह लगभग निश्चित रूप से समस्या है- आपके पास पोर्ट्रेट मोड में एक दृश्य है जो परिदृश्य मोड में नहीं पाया जा सकता है। परिदृश्य में टुकड़े को जोड़ने से समस्या ठीक हो जाती है?
नाथन अंजीर

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

4

यदि आप Fragmentवैधानिक रूप से xml में जोड़ रहे हैं , तो आप OnFragmentInteractionListenerअपनी Activityकक्षा में लागू करने से चूक गए होंगे । तब इंटरफ़ेस कार्यान्वयन समस्या को हल करेगा। यदि आप Fragmentगतिशील रूप से जोड़ रहे हैं , अर्थात जावा वर्ग में तो यह समाधान नहीं है। क्योंकि आईडीई स्वयं आपको आवश्यक इंटरफेस लागू किए बिना आगे बढ़ने की अनुमति नहीं देगा।


3

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

एक बार जब मैंने अशक्त सूचक अपवाद को हल कर दिया, तो मेरे टुकड़े ने ठीक लोड किया।


3

ऊपर वर्णित किसी भी समाधान ने मेरी मदद नहीं की। लॉग में मुझे नीचे दिए गए अपवाद के विवरण मिल सकते हैं:

06-19 16:20:37.885: E/AndroidRuntime(23973): Caused by: java.lang.RuntimeException: API key not found.  Check that /meta-data/ android:name="com.google.android.maps.v2.API_KEY" android:value="your API key"/ is in the application element of AndroidManifest.xml.

मैंने ऐसा किया और मेरा कोड काम कर रहा था!

<meta-data  android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyCl1yGPZ3mpxxxxxxxAz2R-t7zcWVzrHUL9k"/>
</application>

3

यदि आप कुछ भी बदलना नहीं चाहते हैं और " खंड " टैग के साथ जाना चाहते हैं

यह करो,

<fragment
 android:visibility="gone" (Visibility will not work, just helps in removing frag from xml viewer)(If you want the visibility to be gone make it in your fragment root element visibility=gone)
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:name="com.example.YOUR_FRAGMENT" (This is important)
 />

2

एक ही त्रुटि प्रकार था, जहां लॉगकैट में बिल्कुल वही त्रुटि संदेश प्रदर्शित किया गया था। मुझे जावा बिल्ड पाथ के तहत बदलाव करने की जरूरत थी Project->Properties। मैंने Google मानचित्र से संबंधित पुस्तकालयों को शामिल किया था जैसे android-support-v4.jarऔर google-play-services.jar; हालाँकि मैं विकल्प मेनू 'Build class path'में इन सहित गायब था 'Order and Export'। हो सकता है कि त्रुटि यहीं हो।

लाइब्रेरी को बिल्ड क्लास पथ सहित प्रयास करें।

जिस क्रम से कक्षाएं बनाई जाती हैं, वह भी त्रुटि को ट्रिगर कर सकती है, इसलिए मेरी सलाह यह भी है कि भवन पथ के क्रम को फिर से व्यवस्थित करने का प्रयास करें। निम्न क्रम का उपयोग करने पर त्रुटि गायब हो गई 'my_project_name/src'->'my_project_name/gen'->'Android Private Libraries':। अंतिम इकाई में पहले बताई गई जार फाइलें हैं।


1

अपनी xml फ़ाइल में टैग के बजाय बस का उपयोग करें। इनफ़्लोटर एक android.app बनाने की कोशिश करता है। फ़्रेग्मेंट जिससे एपीआई <10 पर विफल हो जाएगा। इसलिए आपको एक अलग प्रकार का एक दृश्य समूह बनाने की आवश्यकता है।


1

ListFragment का उपयोग करते समय मुझे यह त्रुटि मिली लेकिन सूची के बजाय सूची दृश्य आईडी listView1 था।

'आपकी सामग्री में एक सूची दृश्य होना चाहिए जिसका आईडी गुण' android.R.id.list '' है

http://developer.android.com/reference/android/app/ListFragment.html


1

सुनिश्चित करें कि यू ने इसका उपयोग किया है

<meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="AIzaSyBEwmfL0GaZmdVqdTxxxxxxxx-rVgvY" />

यह नहीं..

<meta-data 
         android:name="com.google.android.gms.version" 
          android:value="AIzaSyBEwmfL0GaZmdVqdTCvxxxxxxx-rVgvY" /> 

1

बस यही त्रुटि थी। मेरा कारण मेरे टुकड़े वर्ग की दृश्यता थी। यह डिफ़ॉल्ट रूप से सेट किया गया था, सार्वजनिक होना चाहिए।


1

क्या आप टुकड़े के तरीके onCreateऔर onCreateViewतरीके पोस्ट कर सकते हैं ? मेरे पास बिल्कुल वही अपवाद था जो खंड onCreateपद्धति में अपवाद के कारण था , जब मैंने उस समस्या को ठीक किया तो यह त्रुटि वर्ग त्रुटि को निर्धारित करता है


1

मुझे एंड्रॉइड स्टूडियो में यह त्रुटि मिल रही थी कि समस्या यह थी कि मेरे टुकड़े में एक रिश्तेदार लेआउट था, जबकि ऑनक्रिएट व्यू फ़ंक्शन पर कोड था

mDrawerListView = (ListView) inflater.inflate(
                R.layout.fragment_navigation_drawer, container, false);

क्या आपका कोड वही काम कर रहा है?


1

यदि आप AppCompatActivity विरासत में प्राप्त करना चाहते हैं , तो आप कुछ इस तरह से कर सकते हैं- गतिविधि xml में, इस तरह से एक FrameLayout का उपयोग करें-

<FrameLayout
    android:id="@+id/result_fragment"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/progress_frame"/>

और गतिविधि में onCreate-

final FragmentManager supportFragmentManager = getSupportFragmentManager();
    FragmentTransaction ft = supportFragmentManager.beginTransaction();
    ft.replace(R.id.result_fragment, fphResultActivityFragment, "result fragment");
    ft.commitAllowingStateLoss();

धन्यवाद इससे मदद मिली। मुझे यकीन नहीं है कि मैं अपने लेआउट में <टुकड़े> का उपयोग करने में सक्षम था, अन्य ऐप्स में मैंने सफलतापूर्वक काम किया है, लेकिन यह यहां काम नहीं कर रहा था!
SingularityFuture

बस ध्यान दें कि यह काम कर सकता है लेकिन यह आमतौर पर गतिशील टुकड़ों के लिए होता है स्थिर नहीं
टान्नर समर्स

1

मुझे वही त्रुटि मिली, लेकिन मेरा मुद्दा यह था कि मेरे टुकड़े में मूल गतिविधि के xml लेआउट में एक आईडी नहीं थी।


1

एक दिन के संघर्ष के बाद मैंने पाया कि कुछ परिदृश्य जाँच रहे हैं, आप वही सामना कर रहे हैं,

अगर सब कुछ गूगल कोड के समान है, तो कृपया मेरे मामले में मैनिफ़ेस्ट फ़ाइल की जाँच करें मैंने भू कुंजी और मानचित्र कुंजी जोड़ी है, इसीलिए यह अपवाद होता है,

नोट - मेनिफ़ेस्ट फ़ाइल निकालें मैप की में दो कुंजी न जोड़ें

meta-data
        android:name="com.google.android.maps.v2.API_KEY"
        android:value="@string/google_maps_key"/>

उपरोक्त कोड और इस कोड को जोड़ें।

 <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="@string/auto_location"/>

 <meta-data
        android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version"/>

1

मुझे भी ऐसी ही समस्या का समाधान करना पड़ा था; AdMob उदाहरण चलाने के बाद , मैंने अपने ऐप में विज्ञापन डालने की कोशिश की, जिससे यह त्रुटि हुई:

01-02 16:48:51.269    8199-8199/it.dndc.BreathPlot E/AndroidRuntime FATAL EXCEPTION: main
java.lang.IllegalStateException: Could not execute method of the activity
 Caused by: android.view.InflateException: Binary XML file line #57: Error inflating class fragment

समाधान यह है: आप किसी विज्ञापन के लिए सूची सूची में टुकड़ा नहीं डाल सकते। इसके बजाय, मैं इसे किसी भी समस्या के बिना एक FragmentActivity और ActionBarActivity में जोड़ सकता हूं।

मेरा सुझाव है: AdMob उदाहरण से शुरू करें और इसे अपने मौजूदा ऐप में जोड़ें: मैंने बहुत समय बचाया होगा !!!


1

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

# Exclude the fragments and argType for navigation component.
-keep class * extends androidx.fragment.app.Fragment{}
-keep class com.safetonet.presentation.features.parent.adddevice.model.PresentableAddDeviceData
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.