1

他の人からインポートした Android プロジェクトを使用しています。すべての依存関係を並べ替えました。プロジェクトにエラーはありませんが、起動しようとすると、次のようになります。

04-08 16:49:41.761: E/AndroidRuntime(19254): FATAL EXCEPTION: main
04-08 16:49:41.761: E/AndroidRuntime(19254): java.lang.RuntimeException: Unable to
      instantiate activity ComponentInfo{com.me.app/com.me.app.ui.ActivityDashboard}: 
      java.lang.ClassNotFoundException: Didn't find class 
      "com.me.app.ui.ActivityDashboard" 
      on path: /data/app/com.me.app-1.apk

私のマニフェスト:

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@android:style/Theme.Light.NoTitleBar">
    <activity
        android:name=".ui.ActivityDashboard"
        android:label="@string/app_name" 
        android:screenOrientation="portrait">
            <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    ...
</application>

これは一般的な問題のようです。見つけた他のすべての質問を読み、次のことを行いましたが、すべて役に立ちませんでした。

  • ADT と SDK が完全に更新されました
  • Android 2.3.3 (SDK 10) に対してビルドしています
  • これは Android ビルド ターゲットで選択され、ライブラリは Java ビルド パスにあります。
  • マニフェストのすべてのクラスパスは正しいです。すべてを再確認しました。
  • すべてのアクティビティがマニフェストにあり、正しい意図があります。
4

1 に答える 1

4

ライブラリはJavaビルドパスにあります

それは正しくありません。この変更を元に戻し、JAR をプロジェクトのlibs/ディレクトリに移動してください。

ビルド パスに JAR を手動で追加すると、コンパイル時にコンパイラは満足しますが、実行時に JAR の内容が APK ファイルに追加されず、ClassNotFoundExceptions などが発生します。

スクリーンショットの最初の 4 つのエントリなど、サードパーティの JAR について言及していることに注意してください。それらのどれも にあるようには見えずlibs/、すべてある必要があります。

all-JARs-must-be-in-libs/ルールの唯一の例外は次のとおりです。

  1. Android 独自のプラットフォーム JAR。ビルド ターゲットを選択することでプロジェクトにアタッチされます (理由: この JAR のコンテンツは特に APK に含める必要はありません)。

  2. libs/参照するサードパーティ JAR 用の独自のディレクトリを持つ Android ライブラリ プロジェクト

あなたのコアエラーcom.me.app.ui.ActivityDashboardは見つかりませんでした.これは、libs/.

于 2013-04-08T16:02:09.247 に答える