4.6コード署名ツールで4.7 Blackberryアプリケーションに署名しました。しかし、アプリケーションを2回目に起動すると、「KeyCodeNumber例外」がスローされます。Blackberryアプリに署名した後にKeyCodeNumber例外が発生するのはなぜですか?
誰にもこの例外が発生する理由の手がかりはありますか?
ありがとうございます!
4.6コード署名ツールで4.7 Blackberryアプリケーションに署名しました。しかし、アプリケーションを2回目に起動すると、「KeyCodeNumber例外」がスローされます。Blackberryアプリに署名した後にKeyCodeNumber例外が発生するのはなぜですか?
誰にもこの例外が発生する理由の手がかりはありますか?
ありがとうございます!
KeyCodeNumberの例外には、検証プロセスにtodoが必要です。あなたはJavaの アーカイブを構築することにより開始した場合
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 コンパイラは独自の 難読化を実行し、 コードが既に難読化されている場合に問題が発生することがあります。
、この問題を回避するには、次の例に示すように、コンストラクタ内のクラスを呼び出すことはありません。
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から外します。
ビルド手順通常 RAPCをjavacコマンドを使用してJavaソースファイル 、その後、 実行preverify.exeファイルからコンパイルしてから 。 RAPCの以前のバージョンで の問題を避けるためにjavacに 引数に次のコマンドラインを追加します。
のjavac.exeを1.3 -target 1.1
-source缶 原因の検証が非常に長く、いくつかの方法エラー。 これらのメソッドをヘルパー メソッドに分割すると、 の検証エラーの可能性を減らすことができます。
としてそうではないが、(10個のまたは 以上のパラメータを持つ)いくつかの非常に 長いメソッドの定義、およびいくつかの非常に長い 定数定義(長いパッケージ 構造および/または長い名前) も、検証エラーが発生する可能性があります。
これはモバイルデベロッパーがINSANEの理由です – drubin