0

2つのAndroidプロジェクトがあります。1つはライブラリであり、jarをコンパイルし、もう1つはビルドパスにこのjarを含む実行可能ファイルをコンパイルします。

プロジェクトのjar内のアクティビティをサブクラス化していますが、それを開始すると、ClassNotFoundExceptionが発生します。

問題のアクティビティのマニフェストは次のMainActivityとおりです。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.my.package.MyProject"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk android:minSdkVersion="8" />

    <application android:label="@string/app_name"
        android:name=".MyApplication"
        android:icon="@drawable/ic_launcher"
        android:theme="@style/AppTheme">

        <activity android:label="@string/app_name"
            android:configChanges="orientation|keyboardHidden"
            android:name=".MainActivity">

            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>

</manifest>

そして、これが私のjarファイルMainActivityにあるQCARSamplesパッケージです。

package com.my.package.MyProject;

import java.io.File;

import com.qualcomm.QCARSamples.ImageTargets.GraphicsEngineHook;
import com.qualcomm.QCARSamples.ImageTargets.VuforiaTrackingActivity;

import com.my.package.MyProject.R;

public class MainActivity extends VuforiaTrackingActivity{
    private File blenderFile;

    @Override
    protected synchronized void updateApplicationStatus(final int appStatus){
        return;
    }

    @Override
    protected GraphicsEngineHook getGraphicsEngineHook() {
        return new MyGraphicsEngineHook();
    }

    @Override
    protected int getSplashScreenImageResource() {
        return R.drawable.splash_screen_image_targets;
    }
}

また、サブクラス化するアクティビティをそのようにマニフェストに含めようとしましたが、それでも同じエラーが発生していました。

<activity>
    <android:name="com.qualcomm.QCARSamples.ImageTargets.VuforiaTrackingActivity>
</activity>

何か案は?

4

1 に答える 1

2

問題は通常 BuildPath にあります。

Eclipse と ADT を使用している場合: プロジェクトを右クリックし、[ビルド パス] -> [ビルド パスの構成] -> [注文とエクスポート] を選択し、ライブラリが選択されていることを確認します。

再試行する前に、忘れずにプロジェクトをクリーンアップしてください。

XMLを直接編集する代わりに、マニフェストでコメントされた人が提案したクラスパスでもかまいません。[アプリケーション]タブに移動し、アクティビティを選択し、[ブラウザ]をクリックして、[プロジェクトのソースからクラスを表示する]のチェックを外します... '、ライブラリからアクティビティを選択します。

于 2012-12-21T14:44:22.717 に答える