2017-02-27 5 views
1

何らかの理由により、私はRealmObjectに拡張されたクラスを生成するためにAndroidアプリ用の注釈プロセッサを開発しており、@RealmClass@PrimaryKeyという注釈が付けられています。 Realmは私のプロセッサーによって生成されたクラスからインターフェースとメディエーターのコードを生成すると思います。しかし、それは動作していません。私は私のAndroid Studio環境では、注釈プロセッサがそうレルムのプロセッサは、私のクラスやプロセスを見つけることができません... アプリ/構築/生成/ソース/ XXX/aptの内のファイルを検索しませ思わことがわかっ注釈処理を実行するときに/ srcと/ buildの両方のソースファイルをスキャンする

// Generated in app/build/generated/source/apt/debug/com/test/RealmRecord.java 
// package and imports 
@RealmClass 
public class RealmRecord extends RealmObject { 
    @Primary 
    long id; 
    String content; 
    // getters and setters 
} 

さらに..

どのような提案もありがとうございます!

答えて

1

これはRealmアノテーションプロセッサのバグです。 this lineを参照してください:

@Override 
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) { 
    // Don't run this processor in subsequent runs. We created everything in the first one. 
    if (hasProcessedModules) { 
     return CONSUME_ANNOTATIONS; 
    } 

    ... 

    // more buggy code down there 
} 

彼らのプロセッサは、注釈処理契約を違反しています。彼らは最初のラウンド後に処理を放棄する代わりに、インクリメンタルに各ラウンド中に新しいファイルを処理します。

+0

これがエラーの場合は、Githubの問題を提出する必要があります。 – EpicPandaForce

+0

@EpicPandaForceレルムを使用している場合は自由にしてください。私はそうではありませんし、彼らの "働く"コードを変えなければならないことを人々に説得することは、しばしば自由な時間にそうするのは苦痛です。 – user1643723

関連する問題