私はゲームプロジェクトを非常にプラットフォームに依存しないように保ちましたので、私はという3つのプロジェクトに分割しました。 、ゲーム、アンドロイドゲーム。Eclipseの下でのAndroidアクティビティ/プロジェクト依存関係のADT
エラーに関与するクラス/インタフェースのものである:
(ローレベル)エンジンプロジェクトは、このインターフェイスを定義:
com.myteam.engine.IGame
(中間レベル)プラットフォームに依存しないゲームプロジェクトは、それらを定義しますクラス:
com.myteam.myproject.Game com.myteam.myproject.MyProject (derived from com.myteam.myproject.Game)
(最上位)android projec tは、等:
com.myteam.myproject.android.MyAndroidActivity (using com.myteam.myproject.MyProject)
すべてがうまくコンパイルして(最初の2を使用してレベル3上の別のWindowsプロジェクトで)は、Windows上で完全に実行されるアクティビティを実装しています。
しかし、ADTで実行すると、アクティビティの開始時に実行時に失敗します。 Androidアプリは、基本的に「NoClassDefFoundError com.myteam.myproject.MyProject」例外を持つコールスタックを表示します。
LogCat出力が明らかように負荷が/解決中に例外がそのスーパークラス(またはスーパークラスのインタフェース)に起因すると思われる:
12-20 19:51:51.897: D/ddm-heap(218): Got feature list request
12-20 19:51:52.207: I/dalvikvm(218): Failed resolving Lcom/myteam/myproject/Game; interface 18 'Lcom/myteam/engine/IGame;'
12-20 19:51:52.217: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/Game;' failed
12-20 19:51:52.227: W/dalvikvm(218): Unable to resolve superclass of Lcom/myteam/myproject/MyProject; (52)
12-20 19:51:52.227: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/MyProject;' failed
12-20 19:51:52.227: E/dalvikvm(218): Could not find class 'com.myteam.myproject.MyProject', referenced from method com.myteam.myproject.android.MyAndroidActivity.onCreate
12-20 19:51:52.227: W/dalvikvm(218): VFY: unable to resolve new-instance 54 (Lcom/myteam/myproject/MyProject;) in Lcom/myteam/myproject/android/Youcode_AndroidActivity;
12-20 19:51:52.227: D/dalvikvm(218): VFY: replacing opcode 0x22 at 0x0008
12-20 19:51:52.227: D/dalvikvm(218): Making a copy of Lcom/myteam/myproject/android/Youcode_AndroidActivity;.onCreate code (88 bytes)
Iが「ビルドの下に2つの最初のプロジェクトを追加しようとしましたPath/Order and Export "アンドロイドのゲームプロジェクトのEclipseプロジェクトの設定は他のポストやフォーラムで説明されていますが、それは事を変えません。
私の勘違いは、マニフェストやプロジェクトの設定でapkのパッケージ化や実行時にパッケージ/クラスの依存関係について別の言及が必要なことです。何か案は?
.apkに見つからないクラスが含まれているかどうかを確認しましたか? – bart
私はあなたとほぼ同じ正確な問題を抱えています:Javaのみのプロジェクトに依存するAndroidプロジェクト。今日まで(私はAndroid SDK Tools r17をr16から更新しました)、Project Properties-> Java Build Path-> Projectsでこの作業を行うことができました。しかし、今私は同じ例外を報告します。私はバグレポートを提出しました:http://code.google.com/p/android/issues/detail?id=27882 – jfritz42
うわー、私はこの問題でナットをしていました。幸いにも、jfritz42のリンクが私に必要な答えを持っていました。 Thx男。 – tulio84z