Ola pessoal,
Sou novo em java e estou fazendo uma aplicativo que salva um registro e recupera quando é iniciado, estou utilizando o editor GEL e o Wireless ToolKit 2.5.2, lendo alguns tutoriais aqui no GUJ eu aprendi a criar o arquivo JAR através do WTK.
Bom básicamento o problema é o seguinte, eu fiz o programa ele funciona perfeitamente no simulador do WTK, eu consigo criar o arquivo JAR através do WTK mas quando eu vou instalar ele no celular aparece uma mensagem dizendo “Instalação falhou. Pacote Inválido”.
Eu coloquei todos os arquivos (JAR, JAD, MF) na mesma pasta do meu celular para tentar instalar.
Pessoal se alguem puder me ajudar, acredito que esteja cometendo um erro bobo mas não sei qual, abaixo esta o código fonte do programa que eu fiz (parte do código fonte é de Autoria do Márcio Guedes e pode ser encontrada no link: http://www.guj.com.br/java.tutorial.artigo.39.1.guj, Obrigado ao Marcio pelo tutorial e pelo código), o Jar do programa ficou com 4 Kb
import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import javax.microedition.rms.*;
import java.io.*;
public class C2 extends MIDlet implements CommandListener
{
Display tela;
Form princ;
TextField email;
Command sair, send;
private static String RSN = "Teste.txt";
private RecordStore rs = null;
private int ID;
private String Dest;
public C2()
{
// inicializar Commands
this.sair = new Command("Sair", Command.EXIT, 0);
this.send = new Command("Send", Command.SCREEN, 1);
// form de e-mail
this.princ = new Form("Tela Principal");
this.email = new TextField("E-mail de destino:", Dest, 40, TextField.ANY);
//adiciona-se os componentes ao Form Login
this.princ.append(this.email);
this.princ.addCommand(this.sair);
this.princ.addCommand(this.send);
this.princ.setCommandListener(this);
}
public void startApp()
{
//Adquirindo dados da tela
this.tela = Display.getDisplay(this);
this.tela.setCurrent(this.princ);
//adquirindo e-mail
open();
ID = 1;
Dest = getRecord(ID);
close();
//Mostrando e-mail
email.setString(Dest);
}
public void pauseApp()
{
}
public void destroyApp(boolean condicional)
{
}
public void commandAction(Command c, Displayable d)
{
if (c == this.sair)
{
//salvando dados
deletetable();
open();
Dest = email.getString();
add(Dest);
close();
//fechando aplicativo
this.destroyApp(true);
this.notifyDestroyed();
}
if (c == this.send)
{
//aqui deve estar presente o código para envio do arquivo
}
}
/*Desta parte do código em diante não fui eu que fiz, eu peguei aqui no forum no link http://www.guj.com.br/java.tutorial.artigo.39.1.guj e gostaria de aproveitar a oportunidade e agradecer ao Márcio Guedes pelo código e pela explicação. VALEU!!!!*/
public void open()
{
try
{
// rs.deleteRecordStore(RSN);
rs = RecordStore.openRecordStore(RSN, true);
}
catch (RecordStoreNotFoundException e)
{
System.out.println("-- RecordStore inexistente");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public void deletetable()
{
try
{
rs.deleteRecordStore(RSN);
// rs = RecordStore.openRecordStore(RSN, true);
}
catch (RecordStoreNotFoundException e)
{
System.out.println("-- RecordStore inexistente");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public void close()
{
try
{
rs.closeRecordStore();
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public void add(String nome)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nome);
dos.flush();
byte[] data = baos.toByteArray();
int id = rs.addRecord(data, 0, data.length);
baos.close();
dos.close();
}
catch (IOException e)
{
System.out.println("-- Erro de IO");
}
catch (RecordStoreFullException e)
{
System.out.println("-- Não existe espaço disponível");
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public int getNextRecordId()
{
int toReturn = 0;
try
{
toReturn = rs.getNextRecordID();
}
catch (RecordStoreFullException e)
{
System.out.println("-- Não existe espaço disponível");
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
return toReturn;
}
public void delete(int id)
{
try
{
rs.deleteRecord(id);
}
catch (RecordStoreFullException e)
{
System.out.println("-- Não existe espaço disponível");
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public String getRecord(int id)
{
String toReturn = "";
try
{
int recordSize = rs.getRecordSize(id);
byte[] data = new byte[recordSize];
ByteArrayInputStream bais = new ByteArrayInputStream(data);
DataInputStream dis = new DataInputStream(bais);
int numBytes = rs.getRecord(id, data, 0);
toReturn = dis.readUTF();
bais.reset();
bais.close();
dis.close();
}
catch (IOException e)
{
System.out.println("-- Erro de IO");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("-- Registro muito grande");
}
catch (InvalidRecordIDException e)
{
System.out.println("-- ID inexistente");
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
return toReturn;
}
public void update(int id, String nome)
{
try
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
DataOutputStream dos = new DataOutputStream(baos);
dos.writeUTF(nome);
dos.flush();
byte[] data = baos.toByteArray();
rs.setRecord(id, data, 0, data.length);
}
catch (IOException e)
{
System.out.println("-- Erro de IO");
}
catch (ArrayIndexOutOfBoundsException e)
{
System.out.println("-- Registro muito grande");
}
catch (InvalidRecordIDException e)
{
System.out.println("-- ID inexistente");
}
catch (RecordStoreNotOpenException e)
{
System.out.println("-- O Record Store esta fechado");
}
catch (RecordStoreException e)
{
System.out.println("-- Outro erro");
}
}
public void printLoop()
{
try
{
for (int i = 1; i <= rs.getNumRecords(); i++)
{
System.out.println("-- getRecord = " + getRecord(i));
}
}
catch (RecordStoreNotOpenException ex)
{
System.out.println("-- O Record Store esta fechado");
}
}
public void printEnum()
{
try
{
RecordEnumeration re = rs.enumerateRecords(null, null, false);
while (re.hasNextElement())
{
System.out.println("-- getRecord = " + getRecord(re.nextRecordId()));
}
}
catch (InvalidRecordIDException ex)
{
System.out.println("-- ID inexistente");
}
catch (RecordStoreNotOpenException ex)
{
System.out.println("-- O Record Store esta fechado");
}
}
public javax.microedition.lcdui.TextField getEmail() {
return email;
}
public void setEmail(javax.microedition.lcdui.TextField value) {
email = value;
}
}