43

Sto creando un'applicazione che pubblicherà un collegamento su Twitter. Il seguente codice si rifiuta di confezionare per me, lanciando il seguente errore:Confezione Blackberry OAuth errore di lancio app

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

Ecco il codice:

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);     
      } 
     }); 
    } 
} 

La cosa strana è, se tolgo le seguenti righe, confeziona bene :

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

Qualsiasi aiuto sarebbe apprezzato come ho veramente bisogno l'ascoltatore campo allegato a questa schermata.

Con codice come authButton.setChangeListener(null), il pacchetto funziona correttamente, tuttavia è necessario codice con FieldChangeListener per fare qualcosa.

+0

prova con codice come 'authButton.setChangeListener (null)' - solo per assicurarsi che sia non il riferimento a FieldChangeListener che causa problemi – gnat

+0

Questo pacchetto funziona correttamente, ma ho bisogno che faccia qualcosa. –

+0

controlla le impostazioni di costruzione; da quello che descrivi sembra piuttosto in fase di confezionamento, l'utilità jar non riesce a trovare il file jar o la directory contenente il file 'FieldChangeListener.class'. Soprattutto verificare se si imballa contro la versione corretta dell'API Blackberry – gnat

risposta

2

Assicurarsi che il percorso del cestino java sia impostato nella variabile di ambiente.

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

e dare un'occhiata alle ultime 3 posti nel seguente sito web:

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

assicurarsi che il kit di sviluppo software Java ® (Java SDK/JDK) Inoltre è installato su il computer e viene utilizzata una versione corretta di Java SDK.

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

Come accennato in Scott Boettger commento qui sotto, questo post potrebbe essere utile pure: imballaggio http://supportforums.blackberry.com/t5/Java-Development/why-cause-more-then-100-compiled-classes-packaging-I-O-error/m-p/520282

+3

Ho sicuramente installato l'SDK. Ma i tuoi post mi portano a questo post: http://supportforums.blackberry.com/t5/Java-Development/why-cause-more-then-100-compiled-classes-packaging-I-O-error/m-p/520282. Ho un progetto abbastanza grande con molte classi compilate. –