2010-12-13 4 views

答えて

1

KeyCodeNumberの例外には、検証プロセスにtodoが必要です。あなたはJavaの アーカイブを構築することにより開始した場合

  1. :以下

    When developing Java applications for the BlackBerry smartphone, you may encounter any of the following verification errors or errors similar to the following:

    Verification Error 3141 Module 'MyMIDlet' has verification error (<###>) at offset <###>. Error starting MyMIDlet: Module 'MyMIDlet' has verification error (<####>) at offset <###>." These errors often occur when creating MIDlets. They are inherently hard to debug because the same error message can apply to a number of problems.

    を防ぐために、可能な解決策や、正しい検証エラーのリストです:検証エラーを防ぐ方法を説明

    ブラックベリーpublished an article (JAR)ファイルを作成し、 RIMアプリケーションプログラムコンパイラ (RAPC)を使用して.codファイルを作成した場合、のときに難読化をオフにすることを確認してください。 JARファイルを構築します。 RAPC コンパイラは独自の 難読化を実行し、 コードが既に難読化されている場合に問題が発生することがあります。

  2. System.out。*呼び出しをすべて削除します。これらの は、通常、 BlackBerryスマートフォンでは何も実行しませんが、 は確認エラーを引き起こす可能性があります。
  3. 未使用のインポートステートメントを削除します。
  4. 各関数または変数 のアクセスを明示的に指定します。 の例では、それぞれが がpublic、private、または として保護されていることを確認してください。
  5. MIDletを使用している場合は、 MIDletクラスがpublicとして宣言されている であることを確認してください。
  6. CODファイルが破損しているか、 が正しく署名されていないと、確認エラーが発生することがあります。 クリーンリビルドを実行し、アプリケーションに再度署名することを確認してください。 BlackBerryスマートフォンにアプリケーションを再インストールします。
  7. 実行不可能なコードをコメントアウトします。 ベリファイのエラーは、 のメインコードファイルとライブラリファイルのサイズに、 と関連している可能性があります。 が非実行コードをコメントアウトすると、 ファイルサイズが変更され、 という問題が修正されることがあります。あなたはRIMのクラスから継承 任意のクラスを作成している場合
  8. は、あなたがそれらの クラスで作成したカスタム・メソッドと メンバーの 名前を変更します。これにより、 には、 内部RIMクラス内の同じ名前のメソッドまたは のメンバーの名前が指定されていないことが確認されます。
  9. アプリケーションが使用している場合 BlackBerry®Device Software 3 がjavax.microedition.rms.RecordStore クラスがバージョン4.0より前のBlackBerry® Java(登録商標)開発環境 (ブラックベリーJDE)を使用してコンパイルされたアプリケーションを実装する際に8又は 後、検証エラーが を生じます。これは、 アプリケーションが、 RecordStoreクラスのaddRecordListenerまたは removeRecordListenerメソッドのいずれかを使用する場合に発生します。この 問題を解決するには、BlackBerry JDE 4.0以降を使用してアプリケーション を再コンパイルします。
  10. のBlackBerry®Java(登録商標)仮想マシン (BlackBerryのJVM)が、別の クラスのコンストラクタ内で直接 クラスの 参照を処理する方法に問題があります。以下はその例です。 Class1 class1 = new Class1(Class2.class.getName());

、この問題を回避するには、次の例に示すように、コンストラクタ内のクラスを呼び出すことはありません。

Class1 class1; 
String className = Class2.class.getName(); 
Class1 = new Class1(className); 

内部クラスから静的インスタンス変数への参照を削除します。たとえば、次のコード例は、エラーを引き起こす可能性があります:

public class MyOuterClass { 
    static int var; 
    class MyInnerClass { 
     public void doSomething() { 
      var = 7; 
     } 
    } 
} 

なMyInnerClassを引くためのロジックを外部クラスにVARのためのget/setメソッドを作成または変更など、あなたがこれらの参照を削除することができますいくつかの方法がありますが、 MyOuterClassから外します。

  1. ビルド手順通常 RAPCをjavacコマンドを使用してJavaソースファイル 、その後、 実行preverify.exeファイルからコンパイルしてから 。 RAPCの以前のバージョンで の問題を避けるためにjavacに 引数に次のコマンドラインを追加します。

    のjavac.exeを1.3 -target 1.1

  2. -source缶 原因の検証が非常に長く、いくつかの方法エラー。 これらのメソッドをヘルパー メソッドに分割すると、 の検証エラーの可能性を減らすことができます。

  3. としてそうではないが、(10個のまたは 以上のパラメータを持つ)いくつかの非常に 長いメソッドの定義、およびいくつかの非常に長い 定数定義(長いパッケージ 構造および/または長い名前) も、検証エラーが発生する可能性があります。

+0

これはモバイルデベロッパーがINSANEの理由です – drubin

関連する問題