2

ジェネリックコレクション:

class B {}
class A extends A {}

List<Class<? extends B>> bs = new ArrayList<Class<? extends B>>();
bs.add(A.class);

正常に動作します(期待どおり)。

しかし、androrm(http://androrm.the-pixelpla.net/)ライブラリを使おうとすると:

class A extends com.orm.androrm.Model {}
List<Class<? extends com.orm.androrm.Model>> models = new ArrayList<Class<? extends com.orm.androrm.Model>>();
models.add(A.class);

ランタイムエラーが発生します:

E/AndroidRuntime(2177): java.lang.NoClassDefFoundError: com.my.android.A

なぜか分かりませんか?

4

2 に答える 2

1

Androidエミュレーターのアプリケーションでandrormライブラリをエクスポートしていないと思います。

実行時にandrormライブラリを使用する場合は、andrormライブラリjarをアプリのassets/フォルダーに保存する必要があります。

Eclipseを使用している場合は、プロジェクトを右クリックして[プロジェクトのプロパティ]に移動します。「ビルドパス」というタブがあります。使用しているアンドロムライブラリを(アセット/フォルダ内の)[ライブラリ]というサブタブに追加し、[注文とエクスポート]タブのサブタブにあるアンドロムライブラリのエクスポートをクリックしてください。

これにより、クラスパスの「エクスポート」フラグが「true」に設定されます。次に、アプリを実行して、これでエラーが修正されるかどうかを確認します。

于 2012-05-05T08:15:34.043 に答える
1

ADT17以降のバージョンを使用している場合

次に、フォルダlibsを作成し、すべてのjarをこのフォルダに配置します

この回答を見る必要がありますhttps://stackoverflow.com/a/10046725/1289716

于 2012-05-05T08:24:15.233 に答える