java - IntelliJ IDEA रेंडर त्रुटि




android intellij-idea (5)

मैं प्रोग्रामिंग एंड्रॉइड के लिए इंटेलिजे आईडीईए स्थापित करने की कोशिश कर रहा हूं लेकिन मैं main.xml प्रस्तुत नहीं कर सकता।

org.jetbrains.android.uipreview.RenderingException: प्रतिपादन लाइब्रेरी का यह संस्करण IntelliJ IDEA के आपके संस्करण से अधिक हालिया है। कृपया org.jetbrains.android.uipreview.RenderServiceFactory.loadipibrary (RenderServiceFactory.java:158) पर IntelliJ IDEA को org.jetbrains.android.uipreview.RenderServiceFactory.create (RenderServiceFactory.java:73) पर org.jetbrains.android.sdk पर अपडेट करें AndroidTargetData.getRenderServiceFactory (AndroidTargetData.java:132) org.jetbrains.android.uipreview.RenderUtil.renderLayout (RenderUtil.java:105) com.intellij.android.designer.designSurface.AndroidDesignerEditorPanel $ 8.run (AndroidDesignerEditorPanel.java: 346) com.intellij.util.ui.update.MergingUpdateQueue.execute (MergingUpdateQueue.java:320) com.intellij.util.ui.update.MergingUpdateQueue.execute (MergingUpdateQueue.java:310) com.intellij.util पर com.intellij.util.ui.update.MergingUpdateQueue पर com.intellij.util.ui.update.MergingUpdateQueue.flush (MergingUpdateQueue.java3969) पर .ui.update.MergingUpdateQueue $ 2.run (MergingUpdateQueue.java:254)। com.intellij.util.ui.update पर फ्लश (MergingUpdateQueue.java2127) .MergingUpdateQueue.run (एम ergingUpdateQueue.java1717) com.intellij.util.Alarm $ पर $ 1.run (Alarm.java:289) java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:471) java.util पर अनुरोध करें। java.util.concurrent पर futureTask $ Sync.innerRun (FutureTask.java:334) java.util.concurrent.FutureTask.run (FutureTask.java:166) पर java.util.concurrent पर। थ्रेडपूलएक्सेटोरर.रुनवर्कर (ThreadPoolExecutor.java:1110) जावा पर .util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:603) java.lang.hread.run (Thread.java:722) पर

जब मैं एंड्रॉइड जीयूआई डिजाइनर (इंटेलिजे यूटिलिटी) के साथ main.xml खोलने का प्रयास करता हूं तो यह अपवाद है। मेरे पास नवीनतम आईडीई संस्करण है इसलिए मुझे नहीं पता कि यहां क्या हो रहा है।


Answers

पूर्वावलोकन टैब में बस अंतिम ड्रॉप-डाउन सूची खोलें और निम्न एंड्रॉइड एसडीके चुनें। मेरे मामले में, मैंने एंड्रॉइड 4.4.2 चुना और पूर्वावलोकन तुरंत दिखाई दिया।


आईडीईए के पास अभी तक 4.3 के लिए रेंडर संस्करण नहीं है। एंड्रॉइड का चयन संस्करण आज़माएं जो पूर्वावलोकन में ड्रॉपडाउन में 4.3 से कम है। इससे मेरा काम बनता है।


पूर्वावलोकन टैब में बस अंतिम ड्रॉप-डाउन सूची खोलें और निम्न एंड्रॉइड एसडीके चुनें। मेरे मामले में, मैंने एंड्रॉइड 4.4.2 चुना और पूर्वावलोकन तुरंत दिखाई दिया।

इससे मेरा काम बनता है


आईडीईए और एंड्रॉइड एसडीके बिल्ड-टूल्स (18.1) की नवीनतम रिलीज के बीच एक असंगतता प्रतीत होती है। थोड़ा पुराना संस्करण 18.0.1 स्थापित करने से समस्या ठीक होनी चाहिए।


एक शर्त मान लें कि आप सर्वर पर कुछ फाइल अपलोड कर रहे हैं, अपलोड बटन पर क्लिक करके एक संवाद खोलना चाहिए, शीर्षक और वैकल्पिक टैग के लिए संकेत देना चाहिए। और संवाद में 2 बटन वाले संवाद को रद्द और जारी रखें।

लेआउट xml फ़ाइल का उपयोग करके यूआई को अपनी इच्छानुसार बनाएं।

फिर डायलॉगफ्रेगमेंट को विस्तारित करने वाली एक कक्षा बनाएं। लेआउट को बढ़ाएं और देखें CreateView () विधि के अंदर विचारों को प्रारंभ करें।

उस वर्ग के अंदर एक इंटरफेस बनाते हैं

 public interface uploadDialogInterface

   {
       public void senddata(String title, String tag);
   }

    uploadDialogInterface interfaceObj;
    String title="";
    String tag=" ";

और महत्वपूर्ण बात यह है कि आपको एटैच () विधि को ओवरराइड करने की आवश्यकता है

 @Override
public void onAttach(Context context) {
    super.onAttach(context);
    this.context=context;
    interfaceObj= (uploadDialogInterface) getTargetFragment();
}

और बटन पर इंटरफ़ेस विधि को कॉल करें पर क्लिक करें

     @Override
public void onClick(View v) {
    int id=v.getId();
    if(id== R.id.vB_fud_cancel)
    {
        dismiss();
    }
    else if(id== R.id.vB_fud_upload)
    {
        title=mVideotitle.getText().toString();
        tag=mOptionaltag.getText().toString();
        if(mVideotitle.getText().toString().isEmpty()) {
            Snackbar.make(mVideotitle,"Please enter the video title", Snackbar.LENGTH_SHORT).show();
       }else
        {
            interfaceObj.senddata(title,tag);
            dismiss();

        }
    }
}

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

private void callUploadDialog()
{
    UploadDialogFragment fragment = new UploadDialogFragment();
    fragment.setTargetFragment(this, 0);
    FragmentManager manager = getFragmentManager();
    FragmentTransaction ft = manager.beginTransaction();
    ft.setCustomAnimations(R.anim.fade_in, R.anim.fade_in);
    fragment.show(ft, "UploadDialogFragment");
    fragment.setCancelable(false);
}

और अंत में आपको इंटरफेस को कार्यान्वित करना चाहिए (जिसे संवाद खंड के अंदर घोषित किया गया था) और विधि को ओवरराइड करना चाहिए

@Override
public void senddata(String title,String optionaltag) {
    this.videoTitle=title;
    this.optionalTag=optionaltag;

}

मुझे लगता है कि यह पोस्ट उन लोगों के लिए उपयोगी होगा जो पहली बार संवाद खंड का उपयोग कर रहे हैं। मैं समाधान खोजने के लिए संघर्ष किया गया था। और उम्मीद है कि यह भविष्य में किसी की समस्या का समाधान करेगा। (भाषा के लिए खेद है)





java android intellij-idea