1

ボタンを押して開始したい phonegap アクティビティがあります。

shareButton.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent activity = new Intent(context, GalleryActivity.class);
                context.startActivity(activity);
            }
        });

問題は次のとおりです。アクティビティを開始するたびに、次のエラーが発生します。

java.lang.NoClassDefFoundError: net.myns.lib.cutoutcam.GalleryActivity

アクティビティは次のようになります。

package net.myns.lib.cutoutcam;
import org.apache.cordova.DroidGap;

import android.os.Bundle;
import android.util.Log;

public class GalleryActivity extends DroidGap {


    private static final String TAG = "GalleryActivity";


    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
        Log.v(TAG, TAG+" initialised");
    }


}

マニフェスト:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="net.myns.cutoutcamPro"
    android:versionCode="32"
    android:versionName="3.2" >

    <application
        android:icon="@drawable/icon"
        android:label="@string/app_name" 
        android:hardwareAccelerated="true">
        <activity
            android:name=".CutoutCamProActivity"
            android:configChanges="keyboard|orientation|keyboardHidden"
            android:label="@string/app_name"
            android:windowSoftInputMode="adjustPan" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
            <intent-filter>
                <action android:name="android.media.action.IMAGE_CAPTURE" />
                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="net.myns.lib.cutoutcam.PreferenceActivity"
            android:label="@string/set_preferences" >
        </activity>
        <activity
            android:name="net.myns.lib.cutoutcam.LoginActivity"
            android:label="Share image" >
        </activity>
        <activity
            android:name="net.myns.lib.cutoutcam.RegisterActivity"
            android:label="Share image" >
        </activity>
        <activity
            android:name="net.myns.lib.cutoutcam.GalleryActivity"
            android:label="All images" >
        </activity>
    </application>

    <supports-screens 
           android:largeScreens="true" 
           android:normalScreens="true" 
           android:smallScreens="true" 
           android:resizeable="true" 
           android:anyDensity="true" />


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

    <uses-permission android:name="android.permission.CAMERA" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

</manifest>

GalleryActivity は LibraryProject 内に格納されていますが、これが違いを生むかどうかはわかりません。

「extends DroidGap」を「extends Activity」に置き換えるとすぐに、アクティビティを開始できます。

誰かがここで何がうまくいかないのか知っていますか?

4

1 に答える 1

2

答えが見つかりました!

cordova-1.8.1.jar を libs ディレクトリに直接コピーするのではなく、 libs/phonegap-phonegap-ce32a3f/lib/android/cordova-1.8.1.jar にコピーしました

覚えておいてください:常にjarをlibsフォルダーのルートにコピーしてください!

助けてくれてありがとう...

于 2012-06-19T20:27:46.147 に答える