2016-09-10 8 views
1

CN1 3.5.2でAndroidビルドを送信すると、ローカルで実行されるコードは作成されません。私のコードで何か間違っているのか環境問題であるのか誰にでも教えてくれますか?Build on CodenameOne error: "エラー:シンボルメソッドcompare(int、int)を見つけることができません"

Android用にビルドしようとしたときに表示されるエラーメッセージは、「...エラー:シンボルメソッドcompare(int、int)を見つけることができません」とVectorクラスのsortメソッドの別のものです。

関与する行は、Integer.compare(int、int)メソッドを使用しています。ここで

は、Sortメソッドを使用するコードです:

protected Vector getLearnableListModel(Vector<String> modulesSelected, Vector<String> categoriesSelected){ 
     Vector result = MyApplication.moduleSet.getLearnableListModel(modulesSelected, categoriesSelected); 
     result.sort(new Comparator() { 
      @Override 
      public int compare(Object o1, Object o2) { 
       LearnableSpec ls1 = (LearnableSpec) o1; 
       LearnableSpec ls2 = (LearnableSpec) o2; 
       return ls1.compareTo(ls2); 
      } 
     }); 
     return result; 
    } 

そして、ここでは、私が上に呼び出されていることを書いたcompareToメソッドだ「ls1.compareTo(LS2);」そして、他のコンパイラエラーを生成しInteger.compare(int、int)メソッドを使用しています。

@Override 
    public int compareTo(LearnableSpec other) { 
     LinkedHashMap modLHM = MyApplication.moduleSet.getAllModules(); 
     LinkedHashMap catLHM = MyApplication.moduleSet.getAllCategories(); 

     int i = Integer.compare(indexOfLinkedHashMapKey(modLHM, moduleID), indexOfLinkedHashMapKey(modLHM, other.getModuleID())); 
     if (i != 0) return i; 

     i = Integer.compare(indexOfLinkedHashMapKey(catLHM,categoryID),indexOfLinkedHashMapKey(catLHM,other.getCategoryID())); 
     if (i != 0) return i; 

     return name.compareTo(other.getName()); 
    } 

答えて

0

コードネーム一つは、いくつかのものが欠けていることを意味するJavaのサブセットを実装しています。痛みを伴う番号が見つからず、一部のインタフェースはJava SEのように実装されていません。これの逆はコードネーム一つのiOSアプリケーションは、50メガバイトの最小の出発点とは対照的に、3メガバイトな限り小さくすることができることであることを

お知らせ...あなたは、通常の整数をCaseInsensitiveOrderようなものを使用することができ、文字列の比較のために

intA - intBのようなものは、かなりうまく動作し、インターフェース契約を満足させるでしょう。

関連する問題