开发者

Problem while running the j2me application

开发者 https://www.devze.com 2023-03-16 01:16 出处:网络
I am not able to view any content in the emulator while running the application. The Build is not failed and i am able run the application successfully. While i am closing the emulator i am getting an

I am not able to view any content in the emulator while running the application. The Build is not failed and i am able run the application successfully. While i am closing the emulator i am getting an error. i can provide both code and log here.

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import java.io.*;
import java.lang.*;
import javax.microedition.io.*;
import javax.microedition.rms.*;


public class Login extends MIDlet implements CommandListener {
    TextField ItemName=null;
    TextField ItemNo=null;
    TextField UserName=null;
    TextField Password=null;
    Form authForm,mainscreen;
    TextBox t = null;
    StringBuffer b = new StringBuffer();
    private Display myDisplay = null;
    private Command okCommand = new Command("Login", Command.OK, 1);
    private Command exitCommand = new Command("Exit", Command.EXIT, 2);
    private Command sendCommand = new Command("Send", Command.OK, 1);
    private Command backCommand = new Command("Back", Command.BACK, 2);
    private Alert alert = null;

    public Login() {
        ItemName=new TextField("Item Name","",10,TextField.ANY);
        ItemNo=new TextField("Item No","",10,TextField.ANY);
        myDisplay = Display.getDisplay(this);
    UserName=new TextField("Your Name","",10,TextField.ANY);
    Password=new TextField("Password","",10,TextField.PASSWORD);
    authForm=new Form("Identification");
    mainscreen=new Form("Logging IN");
        mainscreen.addCommand(sendCommand);
    mainscreen.addCommand(backCommand);
    authForm.append(UserName);
    authForm.append(Password);
    authForm.addCommand(okCommand);
    authForm.addCommand(exitCommand);
    authForm.setCommandListener(this);
    myDisplay.setCurrent(authForm);
    }

    public void startApp() throws MIDletStateChangeException {
    }

    public void pauseApp() {
    }



    protected void destroyApp(boolean unconditional)
            throws MIDletStateChangeException {
    }


    public void commandAction(Command c, Displayable d) {

        if ((c == okCommand) && (d == authForm)) {
    if (UserName.getString().equals("") || Password.getString().equals("")){
        alert = new Alert("Error", "You should enter Username and Password", null, AlertType.ERROR);
        alert.setTimeout(Alert.FOREVER);
        myDisplay.setCurrent(alert);
    }
    else{
    //myDisplay.setCurrent(mainscreen);
    login(UserName.getString(),Password.getString());
    }
    }
        if ((c == backCommand) && (d == mainscreen)) {
        myDisplay.setCurrent(authForm);
    }
    if ((c == exitCommand) && (d == authForm)) {
        notifyDestroyed();
    }
        if ((c == sendCommand) && (d == mainscreen)) {
            if(ItemName.getString().equals("") || ItemNo.getString().equals("")){

            }
            else{
        sendItem(ItemName.getString(),ItemNo.getString());
            }
    }
    }



        public void login(String UserName,String PassWord) {
    HttpConnection connection=null;
    DataInputStream in=null;
    String url="http://olario.net/submitpost/submitpost/login.php";

    OutputStream out=null;
    try
    {
        connection=(HttpConnection)Connector.open(url);
        connection.setRequestMethod(HttpConnection.POST);
        connection.setRequestProperty("IF-Modified-Since", "2 Oct 2002 15:10:15 GMT");
        connection.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
        connection.setRequestProperty("Content-Language", "en-CA");
        connection.setRequestProperty("Content-Length",""+ (UserName.length()+PassWord.length()));
        connection.setRequestProperty("username",UserName);
        connection.setRequestProperty("password",PassWord);
    out = connection.openDataOutputStream();
    out.flush();
    in = connection.openDataInputStream();
    int ch;
    while((ch = in.read()) != -1) {
        b.append((char) ch);
        //System.out.println((char)ch);
    }
    //t = new TextBox("Reply",b.toString(),1024,0);
    //mainscreen.append(b.toString());
    String auth=b.toString();
    if(in!=null)
        in.close();
    if(out!=null)
        out.close();
    if(connection!=null)
        connection.close();

    if(auth.equals("ok")){
                mainscreen.setCommandListener(this);
        myDisplay.setCurrent(mainscreen);

    }
        }
    catch(IOException x){

        }


        }


       public void sendItem(String itemname,String itemno){
           HttpConnection connection=null;
    DataInputStream in=null;
    String url="http://www.olario.net/submitpost/submitpost/submitPost.php";

    OutputStream out=null;
    try
    {
        connection=(HttpConnection)Connector.open(url);
        connection.setRequestMethod(HttpConnection.POST);
        connection.setRequestProperty("IF-Modified-Since", "2 Oct 2002 15:10:15 GMT");
        connection.setRequestProperty("User-Agent","Profile/MIDP-1.0 Configuration/CLDC-1.0");
        connection.setRequestProperty("Content-Language", "en-CA");
        connection.setRequestProperty("Content-Length",""+ (itemname.length()+itemno.length()));
        connection.setRequestProperty("itemCode",itemname);
        connection.setRequestProperty("qty",itemno);
    out = connection.openDataOutputStream();
    out.flush();
    in = connection.openDataInputStream();
    int ch;
    while((ch = in.read()) != -1) {
        b.append((char) ch);
        //System.out.println((char)ch);
    }
    //t = new TextBox("Reply",b.toString(),1024,0);
    //mainscreen.append(b.toString());
    String send=b.toString();
    if(in!=null)
        in.close();
    if(out!=null)
        out.close();
    if(connection!=null)
        connection.close();

    if(send.equals("added")){
                alert = new Alert("Error", "Send Successfully", null, AlertType.INFO);
        alert.setTimeout(Alert.FOREVER);
        myDisplay.setCurrent(alert);

    }
        }
    catch(IOException x){

        }

       }
} 

and the log is

pre-init:
pre-load-properties:
exists.config.active:
exists.netbeans.user:
exists.user.properties.file:
load-properties:
exists.platform.active:
exists.platform.configuration:
exists.platform.profile:
basic-init:
cldc-pre-init:
cldc-init:
cdc-init:
ricoh-pre-init:
ricoh-init:
semc-pre-init:
semc-init:
savaje-pre-init:
savaje-init:
sjmc-pre-init:
sjmc-init:
ojec-pre-init:
ojec-init:
cdc-hi-pre-init:
cdc-hi-init:
nokiaS80-pre-init:
nokiaS80-init:
nsicom-pre-init:
nsicom-init:
post-init:
init:
conditional-clean-init:
conditional-clean:
deps-jar:
pre-preprocess:
do-preprocess:
Pre-processing 0 file(s) into /home/sreekumar/NetBeansProjects/Login/build/preprocessed directory.
post-preprocess:
preprocess:
pre-compile:
extract-libs:
do-compile:
post-compile:
compile:
pre-obfuscate:
proguard-init:
skip-obfuscation:
proguard:
post-obfuscate:
obfuscate:
lwuit-build:
pre-preverify:
do-preverify:
post-preverify:
preverify:
pre-jar:
set-password-init:
set-keystore-password:
set-alias-password:
set-password:
create-jad:
add-configuration:
add-profile:
do-extra-libs:
nokiaS80-prepare-j9:
nokiaS80-prepare-manifest:
nokiaS80-prepare-manifest-no-icon:
nokiaS80-create-manifest:
jad-jsr211-properties.check:
jad-jsr211-properties:
semc-build-j9:
do-jar:
nsicom-create-manifest:
do-jar-no-manifest:
update-jad:
Updating application descriptor: /home/sreekumar/NetBeansProjects/Login/dist/Login.jad
Generated "/home/sreekumar/NetBeansProjects/Login/dist/Login.jar" is 3501 bytes.
sign-jar:
ricoh-init-dalp:
ricoh-add-app-icon:
ricoh-build-dalp-with-icon:
ricoh-build-dalp-without-icon:
ricoh-build-dalp:
savaje-prepare-icon:
savaje-build-jnlp:
post-jar:
jar:
pre-run:
netmon.check:
open-netmon:
cldc-run:
Copying 1 file to /home/sreekumar/NetBeansProjects/Login/dist/nbrun4244989945642509378
Copying 1 file to /home/sreekumar/NetBeansProjects/Login/dist/nbrun4244989945642509378
Jad URL for OTA execution: http://localhost:8082/servlet/org.netbeans.modules.mobility.project.jam.JAMServlet//home/sreekumar/NetBeansProjects/Login/dist//Login.jad
Starting emulator in execution mode
Running with storage root /home/sreekumar/j2mewtk/2.5.2/appdb/temp.DefaultCo开发者_运维知识库lorPhone1
/home/sreekumar/NetBeansProjects/Login/nbproject/build-impl.xml:915: Execution failed with error code 143.
BUILD FAILED (total time: 35 seconds) 


I think this is not coding related issue. If multiple instances of the same emulator skin run simultaneously, the toolkit generates unique file paths for each one. For example, on Windows instances of DefaultColorPhone might have a file path name of workdir\appdb\temp.DefaultColorPhone1, workdir\appdb\temp.DefaultColorPhone2, and so forth.

Solution: The file workdir\appdb\DefaultColorPhone\in.use keeps track of the number of storage roots marked as in use. If the emulator crashes, you need to delete the in.use file


You are calling Display.getDisplay(this) in the constructor. The recommendation is to call this inside startApp(). So try and move the Display code into startApp().

   public void startApp() throws MIDletStateChangeException { 
   myDisplay= Display.getDisplay(this); 
   myDisplay.setCurrent(authForm); 
   }

You are also calling login() inside the commandAction function. This code runs on the system thread and the recommendation is to return quickly. Your login() call will block this thread. You should run login() in a separate thread because it will block waiting for your server to respond. Create a separate class which implements Runnable, give it Strings for username and password. Pass in the midlet in the constructor. Put the login() code in the run() method. You can start the thread from inside commandAction once you have passed in the desired username and password. When you get the result from the server call back into your midlet to update the display.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号