0

私は約 4 か月間 Andengine に取り組んできましたが、GLES 1 は正常に動作していました。しかし、AndEngine GLES 2 をインストールすると、実行時に DDMS で Class not Found Exception が表示されます。Androidで同じAndroidMenifestを使用してプロジェクトを試しましたが、実行中です...しかし、BaseGameActivityでアクティビティを継承すると、Class not found Exceptionが表示されます。この問題は、GLES1 でも発生しています。

public class CentrifeudGameActivity extends BaseGameActivity {

private static final int CAMERA_WIDTH = 720;
private static final int CAMERA_HEIGHT = 480;

// ===========================================================
// Fields
// ===========================================================

private Camera mCamera;
private BitmapTextureAtlas mBitmapTextureAtlas;
private TextureRegion mFaceTextureRegion;

@Override
public Engine onLoadEngine() {
    this.mCamera = new Camera(0, 0, CAMERA_WIDTH, CAMERA_HEIGHT);
    return new Engine(new EngineOptions(true, ScreenOrientation.LANDSCAPE, new RatioResolutionPolicy(CAMERA_WIDTH, CAMERA_HEIGHT), this.mCamera));
}

@Override
public void onLoadResources() {
    this.mBitmapTextureAtlas = new BitmapTextureAtlas(32, 32, TextureOptions.BILINEAR_PREMULTIPLYALPHA);
    BitmapTextureAtlasTextureRegionFactory.setAssetBasePath("gfx/");
    this.mFaceTextureRegion = BitmapTextureAtlasTextureRegionFactory.createFromAsset(this.mBitmapTextureAtlas, this, "face_box.png", 0, 0);

    this.mEngine.getTextureManager().loadTexture(this.mBitmapTextureAtlas);
}

@Override
public Scene onLoadScene() {
    this.mEngine.registerUpdateHandler(new FPSLogger());

    final Scene scene = new Scene();
    scene.setBackground(new ColorBackground(0.09804f, 0.6274f, 0.8784f));

    /* Calculate the coordinates for the face, so its centered on the camera. */

    final int centerX = (CAMERA_WIDTH - this.mFaceTextureRegion.getWidth()) / 2;
    final int centerY = (CAMERA_HEIGHT - this.mFaceTextureRegion.getHeight()) / 2;

    /* Create the face and add it to the scene. */
    final Sprite face = new Sprite(centerX, centerY, this.mFaceTextureRegion);
    scene.attachChild(face);

    return scene;
}

@Override
public void onLoadComplete() {
    // TODO Auto-generated method stub

}
}

メニフェストコードで

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

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

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" >
    <activity
        android:name=".CentrifeudGameActivity"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

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

発生している例外は以下の通り

    05-08 10:00:42.598: E/AndroidRuntime(667): FATAL EXCEPTION: main
05-08 10:00:42.598: E/AndroidRuntime(667): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.folio3.games/com.folio3.games.CentrifeudGameActivity}: java.lang.ClassNotFoundException: com.folio3.games.CentrifeudGameActivity
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1880)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread.access$600(ActivityThread.java:123)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.os.Handler.dispatchMessage(Handler.java:99)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.os.Looper.loop(Looper.java:137)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread.main(ActivityThread.java:4424)
05-08 10:00:42.598: E/AndroidRuntime(667):  at java.lang.reflect.Method.invokeNative(Native Method)
05-08 10:00:42.598: E/AndroidRuntime(667):  at java.lang.reflect.Method.invoke(Method.java:511)
05-08 10:00:42.598: E/AndroidRuntime(667):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-08 10:00:42.598: E/AndroidRuntime(667):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-08 10:00:42.598: E/AndroidRuntime(667):  at dalvik.system.NativeStart.main(Native Method)
05-08 10:00:42.598: E/AndroidRuntime(667): Caused by: java.lang.ClassNotFoundException: com.folio3.games.CentrifeudGameActivity
05-08 10:00:42.598: E/AndroidRuntime(667):  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
05-08 10:00:42.598: E/AndroidRuntime(667):  at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
05-08 10:00:42.598: E/AndroidRuntime(667):  at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
05-08 10:00:42.598: E/AndroidRuntime(667):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1871)

ここで何が問題なのか誰でも教えてください!スプライトの例をコピーしているだけですが、クラスが見つからないという例外が発生しているためです。

4

3 に答える 3

2

新しいプロジェクトを作成し、ファイルをそのプロジェクトにコピーします。通常、これらの問題を解決します。

[編集]そして、BaseGameActivityを使用することはできません。SimplebaseGameActivityを使用します。onLoadEngineは、名前をonCreateEngineなどに変更します。

于 2012-05-08T06:29:22.493 に答える
2

プロジェクトをインポートする代わりに andengine をライブラリとして追加し、問題を解決しました

于 2012-08-02T21:09:14.263 に答える
2

ADT のアップグレード後に同じエラーが発生しました。「lib」フォルダの名前を「libs」に変更すると修正されました。

于 2012-09-10T18:29:07.557 に答える