43

मैं एक ऐसा एप्लिकेशन बना रहा हूं जो ट्विटर पर एक लिंक पोस्ट करेगा।पैकेजिंग ब्लैकबेरी ओएथ ऐप फेंकने त्रुटि

public class ShowAuthBrowser extends MainScreen implements OAuthDialogListener 
{ 
    private final String CONSUMER_KEY = "<Consumer>"; 
    private final String CONSUMER_SECRET = "<Secret>"; 
    private LabelField _labelStutus; 
    private OAuthDialogWrapper pageWrapper = null; 
    public StoreToken _tokenValue; 
    public BrowserField b = new BrowserField(); 
    Manager _authManager; 
    Manager _pinManager; 
    ButtonField authButton; 
    TextField authPin; 

    public ShowAuthBrowser()  
    { 
     _authManager = new VerticalFieldManager(NO_VERTICAL_SCROLL | 
               NO_VERTICAL_SCROLLBAR); 
     _pinManager = new HorizontalFieldManager(NO_VERTICAL_SCROLL | 
               NO_VERTICAL_SCROLLBAR); 
     authButton = new ButtonField("OK"); 
     authPin = new TextField(Field.EDITABLE); 
     _authManager.add(_labelStutus); 
     _authManager.add(b); 

     _pinManager.add(authButton); 
     _pinManager.add(authPin); 


     pageWrapper = new BrowserFieldOAuthDialogWrapper(b,CONSUMER_KEY, 
          CONSUMER_SECRET,null,this); 
     pageWrapper.setOAuthListener(this);  

     add(_pinManager); 
     add(_authManager); 

     authButton.setChangeListener(new FieldChangeListener() { 
      public void fieldChanged(Field field, int context) { 
       if(field == authButton) { 
         doAuth(authPin.getText()); 
       } 
      } 
     }); 

    } 

    public void doAuth(String pin) 
    { 
     try 
     { 
      if (pin == null) 
      { 
       pageWrapper.login(); 
      } 
      else 
      { 
       this.deleteAll(); 
       add(b); 
       pageWrapper.login(pin); 
      } 

     } 
     catch (Exception e) 
     { 
      final String message = "Error logging into Twitter: " + 
               e.getMessage(); 
      Dialog.alert(message); 
     }   
    } 

    public void onAccessDenied(String response) { 

     updateScreenLog("Access denied! -> " + response); 

    } 

    public void onAuthorize(final Token token) { 

     final Token myToken = token; 
     _tokenValue = StoreToken.fetch(); 
     _tokenValue.token = myToken.getToken(); 
     _tokenValue.secret = myToken.getSecret(); 
     _tokenValue.userId = myToken.getUserId(); 
     _tokenValue.username = myToken.getUsername(); 
     _tokenValue.save(); 

     UiApplication.getUiApplication().invokeLater(new Runnable() { 

      public void run() { 
       deleteAll(); 
       Credential c = new Credential(CONSUMER_KEY, 
               CONSUMER_SECRET, 
               myToken); 
       PostTweet tw = new PostTweet(); 
       String message="Testing BB App"; 
       boolean done=false; 
       done=tw.doTweet(message, c); 
       if(done == true) 
       { 
        Dialog.alert("Tweet succusfully..."); 
        close();  
       } 
      } 
     }); 

    } 

    public void onFail(String arg0, String arg1) { 
     updateScreenLog("Error authenticating user! -> " + arg0 + ", " + arg1); 
    } 

    private void updateScreenLog(final String message) 
    { 
     UiApplication.getUiApplication().invokeLater(new Runnable() { 

      public void run() { 
       _labelStutus.setText(message);     
      } 
     }); 
    } 
} 

अजीब बात है, अगर मैं निम्नलिखित लाइनों को हटाने, तब भी वह अच्छे पैकेज:

Error: Cannot run program "jar": CreateProcess error=2, The system cannot find the file specified

यहाँ कोड है: निम्नलिखित कोड मेरे लिए पैकेज के लिए, निम्न त्रुटि फेंक मना कर दिया :

authButton.setChangeListener(new FieldChangeListener() { 
     public void fieldChanged(Field field, int context) { 
      if(field == authButton) { 
        doAuth(authPin.getText()); 
      } 
     } 
    }); 

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

authButton.setChangeListener(null) जैसे कोड के साथ, यह सफलतापूर्वक पैकेज करता है हालांकि मुझे कुछ करने के लिए FieldChangeListener के साथ कोड की आवश्यकता है।

+0

कोशिश पैकेजिंग' - बस यह है कि सुनिश्चित करने के लिए फील्डChangeListener का संदर्भ नहीं है जो – gnat

+0

परेशानी पैदा कर रहा है जो पैकेज सफलतापूर्वक करता है हालांकि मुझे कुछ करने की आवश्यकता है। –

+0

अपनी बिल्ड सेटिंग्स की जांच करें; जो आप इसका वर्णन करते हैं उससे पैकेजिंग चरण की तरह दिखता है, जार उपयोगिता को 'फील्डChangeListener.class' फ़ाइल वाली जार फ़ाइल या निर्देशिका नहीं मिल सकती है। विशेष रूप से जांचें कि क्या आप ब्लैकबेरी एपीआई – gnat

उत्तर

2

सुनिश्चित करें कि आपका जावा बिन पथ पर्यावरण चर में सेट है।

http://docs.oracle.com/javase/tutorial/essential/environment/paths.html

और निम्नलिखित वेबसाइट में पिछले 3 पदों पर एक नज़र डालें:

http://supportforums.blackberry.com/t5/Java-Development/I-O-Error-Cannot-run-program-quot-jar-quot-CreateProcess-error-2/td-p/522638

यह भी सुनिश्चित करें Java® सॉफ्टवेयर डेवलपमेंट किट (जावा एसडीके/JDK) बनाने पर स्थापित है कंप्यूटर, और जावा एसडीके का एक सही संस्करण उपयोग किया जाता है।

http://supportforums.blackberry.com/t5/Java-Development/I-O-Error-CreateProcess/ta-p/445949

नीचे स्कॉट Boettger टिप्पणी में उल्लेख किया है, इस पोस्ट को भी सहायक हो सकता है: `तरह authButton.setChangeListener (शून्य) कोड के साथ http://supportforums.blackberry.com/t5/Java-Development/why-cause-more-then-100-compiled-classes-packaging-I-O-error/m-p/520282

+3

मुझे निश्चित रूप से एसडीके स्थापित है। लेकिन आपकी पोस्ट पर मुझे इस पोस्ट पर ले जाया गया है: http://supportforums.blackberry.com/t5/Java- विकास/क्यों- कारण-more-then-100-compiled-classes-packaging-I-O-error/m-p/520282। मेरे पास बहुत सारी संकलित कक्षाओं के साथ काफी बड़ी परियोजना है। –

संबंधित मुद्दे