Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > java.lang.VerifyError


Автор: polosatij 18.10.2006, 12:57
Код


import javax.microedition.lcdui.Command;
import javax.microedition.lcdui.CommandListener;
import javax.microedition.lcdui.Display;
import javax.microedition.lcdui.Displayable;
import javax.microedition.lcdui.TextBox;
import javax.microedition.midlet.MIDlet;

// A first MIDlet with simple text and a few commands.
public class Example extends MIDlet implements CommandListener {

    // The exit, info, and buy commands
    private Command exitCommand;

    private Command infoCommand;

    private Command buyCommand;

    // The display for this MIDlet
    private Display display;

    public Example() {
        display = Display.getDisplay(this);
        exitCommand = new Command("Exit", Command.SCREEN, 1);
        infoCommand = new Command("Info", Command.SCREEN, 2);
        buyCommand = new Command("Buy", Command.SCREEN, 2);
    }

    // Start the MIDlet by creating the TextBox and
    // associating the exit command and listener.
    public void startApp() {
        TextBox t = new TextBox("FirstMIDlet", "Welcome to MIDP Programming",
                256, 0);
        t.addCommand(exitCommand);
        t.addCommand(infoCommand);
        t.addCommand(buyCommand);
        t.setCommandListener(this);
        display.setCurrent(t);
    }

    // Pause is a no-op because there are no background
    // activities or record stores to be closed.
    public void pauseApp() {
    }

    // Destroy must cleanup everything not handled
    // by the garbage collector.
    // In this case there is nothing to cleanup.
    public void destroyApp(boolean unconditional) {
    }

    // Respond to commands. Here we are only implementing
    // the exit command. In the exit command, cleanup and
    // notify that the MIDlet has been destroyed.
    public void commandAction(Command c, Displayable s) {
        if (c == exitCommand) {
            destroyApp(false);
            notifyDestroyed();
        }
    }
}


Код

MicroEdition-Configuration: CLDC-1.0
MIDlet-Name: Example
MIDlet-Info-URL: www.chessarts.com
MIDlet-Icon: /icons/icon.png
MIDlet-Vendor: Denis Piskovatskov
MIDlet-1: Example, /icons/icon.png, Example
MIDlet-Version: 1.0
MicroEdition-Profile: MIDP-2.0




==============>

[B]java.land.VerifyError[/B]

=> kod kompilirovan v Eclipse 3.2 pri j2se 1.4


Автор: javastic 18.10.2006, 14:04
polosatij, а в чем собственно проблема?  smile 

Автор: Dancer 18.10.2006, 14:21
что-то  я не вижу, где у тебя JAR.
Ты packaging то делал? (или текст "без подсветки" это Manifest.mf ?)  
Да и ещё интересно, где это ты ошибку верификации отловил smile, на телефоне или эмуляторе (просто на телефоне вряд ли бы, просто мидлет либо не поставился либо поставился но не запускался)
Проблема верификации, какие-то параметры у тебя не в то что нужно выставлены. (JAD/JAR)
Да, и ещё. Смотри свои настройки в клипсе, потому как в "маленькой" Java данного вида Error-а вообще не существует.

Автор: polosatij 18.10.2006, 14:27
Цитата(javastic @  18.10.2006,  14:04 Найти цитируемый пост)
polosatij, а в чем собственно проблема?  smile  



java.land.VerifyError

отловлена на телефоне..



Цитата(Dancer @  18.10.2006,  14:21 Найти цитируемый пост)
Ты packaging то делал? (или текст "без подсветки" это Manifest.mf ?)  


конечно, делал.. ant-ом..



Цитата(Dancer @  18.10.2006,  14:21 Найти цитируемый пост)
Да и ещё интересно, где это ты ошибку верификации отловил smile, на телефоне или эмуляторе (просто на телефоне вряд ли бы, просто мидлет либо не поставился либо поставился но не запускался)


на телефоне.. мидлет поставился, но запускаеться с ошибкой..



Цитата(Dancer @  18.10.2006,  14:21 Найти цитируемый пост)
Проблема верификации, какие-то параметры у тебя не в то что нужно выставлены. (JAD/JAR)



не совсем понимаю о чём ты..


кстати, всё пробуеться сразу на телефоне без эмулятора  smile

Добавлено @ 14:31 
при запуске приложения сразу высвечиваеться: "Programfehler" (german) => "Programerror".. при нажатии на Details: java/lang/VerifyError: Example.

Автор: Dancer 18.10.2006, 14:32
начинается smile, что за аппарат? (очень похоже что смарт)

Автор: polosatij 18.10.2006, 14:33

телефон Nokia 6230  smile 

Автор: Dancer 18.10.2006, 14:34
натуральная ошибка верификации, покажи польностью свой JAD и свой Manifest.mf

Автор: polosatij 18.10.2006, 14:38
http://www.chessarts.com/mobil/bluetooth.jar

Добавлено @ 14:39 


полностью .jar с манифестом и .class-ом..

Автор: Dancer 18.10.2006, 15:01
Дорогой мой smile, а кто за тебя будет preverify.exe вызывать?  (высылай свой build.xml)
Ты этого не сделал, поэтому и огребаешь.

Автор: polosatij 18.10.2006, 15:04


хм.. а этого я не знал.. а сё это такое? =)

вот build.xml

Код

<?xml version="1.0" ?>
<!-- Java.Web.Start build-Datei. Bitte die Property beachten! -->
<project name="build" default="run" basedir=".">
    <property name="user.home" value="C:\Dokumente und Einstellungen\neZnAJKA" />
    <property name="eclipse.project.directory" value="${user.home}\workspace\bluetooth2" />
    <property name="destination.directory" value="${user.home}\Desktop\bluetooth.probe" />
    <property name="jar.main" value="bluetooth.jar" />

    <!-- main task -->
    <target name="run">

        <!-- delete dir if exist -->
        <delete dir="${destination.directory}" />

        <!-- create dir if not exist -->
        <mkdir dir="${destination.directory}" />


        <jar destfile="${destination.directory}\${jar.main}"
             basedir="." excludes="**/*.java, **/*db, **/*xml, **/*classpath, **/*project"
             manifest="META-INF/MANIFEST.MF">
        </jar>

        <!--
            Manifest-Version: 1.0
            MicroEdition-Configuration: CLDC-1.0
            MIDlet-Name: Fireman Bob
            MIDlet-Info-URL: www.bbmf.net
            MIDlet-Icon: /icons/icon.png
            MIDlet-Vendor: HeXPDA
            MIDlet-1: Fireman Bob, /icons/icon.png, FiremanMIDlet
            MIDlet-Version: 1.00
            MicroEdition-Profile: MIDP-1.0
        -->

    </target>
</project>

Автор: Dancer 18.10.2006, 15:18
Вот твой рабочий мидлетик smile

Автор: polosatij 18.10.2006, 15:23
Цитата(Dancer @  18.10.2006,  15:18 Найти цитируемый пост)
Вот твой рабочий мидлетик smile 



извини.. мы, наверно, говорим на разных языках..

меня интересует - почему не работает, а не рабочий пример.. но за него спасибо  smile но я там не вижу особенной резницы.. что ты сделал  smile

Добавлено @ 15:30 
твой класс рабочий.. с каким компилятором работаешь?

Автор: Dancer 18.10.2006, 15:37
Код

<?xml version="1.0" ?>
<!-- Java.Web.Start build-Datei. Bitte die Property beachten! -->
<project name="build" default="run" basedir=".">

    <property name="user.home" value="C:\Dokumente und Einstellungen\neZnAJKA" />
    <property name="eclipse.project.directory" value="${user.home}\workspace\bluetooth2" />
    <property name="destination.directory" value="${user.home}\Desktop\bluetooth.probe" />
    <property name="jar.main" value="bluetooth.jar" />
  <property name="project.dir"              value="${user.home}"/>
  <property name="build.dir"                value="${project.dir}/tmpclasses"/>
  <property name="preverify.dir"            value="${project.dir}/classes"/>
  <property name="dist.dir"                 value="${project.dir}/dist"/>

  <property name="toolkit.home.dir"    value="YOUR_WTK_PLACE or place were you put some Wireless toolkit"/>

  <property name="toolkit.preverify.cmd"    value="${toolkit.home.dir}/bin/preverify"/>
  <property name="toolkit.cldc.lib.path"    value="${toolkit.home.dir}/lib/cldcapi10.jar" />
  <property name="toolkit.midp.lib.path"    value="${toolkit.home.dir}/lib/midpapi20.jar" />

  <path id="compile.cp">
        <pathelement location="${destination.directory}"/>
  </path>


  <path id="midapi.cp">
        <fileset dir="${toolkit.home.dir}/lib">
            <include name="**/*.jar"/>
            <include name="**/*.zip"/>
        </fileset>
  </path>

    <!-- main task -->
    <target name="run" depends="preverify">

        <!-- delete dir if exist -->
        <delete dir="${destination.directory}" />

        <!-- create dir if not exist -->
        <mkdir dir="${destination.directory}" />


        <jar destfile="${destination.directory}\${jar.main}"
             basedir="." excludes="**/*.java, **/*db, **/*xml, **/*classpath, **/*project"
             manifest="META-INF/MANIFEST.MF">
        </jar>

        <!--
            Manifest-Version: 1.0
            MicroEdition-Configuration: CLDC-1.0
            MIDlet-Name: Fireman Bob
            MIDlet-Info-URL: www.bbmf.net
            MIDlet-Icon: /icons/icon.png
            MIDlet-Vendor: HeXPDA
            MIDlet-1: Fireman Bob, /icons/icon.png, FiremanMIDlet
            MIDlet-Version: 1.00
            MicroEdition-Profile: MIDP-1.0
        -->

    </target>

  <target name="prepare" >
      <mkdir dir="${destination.directory}" />
      <mkdir dir="${preverify.dir}" />
      <mkdir dir="${dist.dir}"/>
  </target> <!--prepare-->


  <target name="compile" depends="prepare">
      <javac srcdir="src" destdir="${destination.directory}" optimize="${compile.optimize}" debug="${compile.debug}" >
            <classpath refid="compile.cp"/>
            <bootclasspath refid="midapi.cp" />
       </javac>
  </target> <!--compile-->

  <target name="preverify" depends="compile">
      <exec dir="" executable="${toolkit.preverify.cmd}">
          <arg line="-classpath ${toolkit.cldc.lib.path};${toolkit.midp.lib.path};${destination.directory}"/> <!--tmpclasses-->
          <arg line="-d ${preverify.dir} ${destination.directory}"/>      <!--classes tmpclasses-->
      </exec>
  </target> <!--preverify-->

</project>

Вот, как смог, поправил твой build.xml возможно там есть какие-то недочёты, но принцып работы заложил :)
Поковыряйся сам, там всё просто.


Автор: polosatij 18.10.2006, 16:21
уряяяяяя.. заЯботала smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)