2017-11-20 6 views
0

私は去年から問題なしでアンドロイド開発でリフレクションを使用しています。私のAndroid Studio 3.0をアップデートした後、Reflectionに関連するすべてのことが、これまで働いていたことに気がつきました。私はメソッドgetDeclaredFields()を使用してクラスからフィールドを取得しようとすると、もはや成功しません。結果は常に空の配列です。 ほとんど1週間検索して、さまざまな種類のものを試した後、私は以下のコードで単体テストを実行しようとしましたが、うまくいったのですが、たとえば、アクティビティで同じコードを実行しようとすると、私は何の結果も得ていない、同じ古い空の配列だけ。Reflection Class.getDeclaredFields()は何も取得していません

Field[] fields = User.class.getDeclaredFields(); 
Log.d(HOME_ACITIVITY_TAG, "Count: " + fields.length); 
for (Field field : fields) 
    Log.d(HOME_ACITIVITY_TAG, "FieldName: " + field.getName()); 

User.java

public class User { 

    private int id; 
    private int personId; 
    private String emailAddress; 
    private String password; 
    private String facebookId; 
    private boolean isActive; 
    private Person profile; 

    public User() {} 
} 

何が起こっているか知っている人はいますか?私のプロジェクトのほとんどはこれに依存していますが、私はReflectionをほとんどすべて使用していました。

よろしく

+0

「ユーザー」の定義方法など、より多くの情報をお知らせください。 –

+0

さて、ちょうど投稿されたUser.java。ヒントありがとうございます。 –

+0

再生できません。実行していると思うコードを実行していますか? – EJP

答えて

0

私はすべてが同じ名前の全く新しいプロジェクトを作成し、そこにすべての私の依存関係を移動しました。それはうまくいきましたが、以前のプロジェクトで何が起こったのかまだ分かりません。問題が何であるかを誰かが理解していれば、私はそれを読んでうれしく思います。それを何度も何度もやり直す考え。

よろしく!

+0

あなたは 'User.class'の古いバージョンで何とか動作していたに違いありませんが、確かにわからないエビデンスは破壊されました。 – EJP

+0

私は証拠を破壊しなかった、それはまだここにある。私はちょうど新しいプロジェクトを作成し、依存関係をコピーしました。私はビルドをきれいにし、 "make project"を何度も使用しました。ユニットテストとAndroidアプリケーションの両方でデバッグした場合、すべてのブレークポイントが一致します。しかし、私はまだ実際には、他のソリューションを試してみるつもりです。 –

関連する問題