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

所以请记住:总是将 jars 复制到 libs 文件夹的根目录中!

谢谢你们的帮助...

于 2012-06-19T20:27:46.147 回答