android中没有找到PhoneGap类错误

时间:2013-01-30 08:20:43

标签: android cordova

我的PhoneGap(Android)应用程序遇到了一些问题。到目前为止,据我所知,我做得很好。这就是我所做的。

  1. 在Eclipse中创建项目后,我在libs文件夹中添加了cordova-2.2.0.jar。
  2. 然后我编辑了AndroidManifest.xml和MainActivity.java
  3. 我在assets文件夹中创建了www文件夹并保留了cordova-2.2.0.js和index.html
  4. 所以,一切都很好。但是当我运行这个程序时,它显示错误。我附上了截图和示例代码。

    enter image description here

    的AndroidManifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.example.hellopgap"
        android:versionCode="1"
        android:versionName="1.0" >
    
        <uses-sdk
            android:minSdkVersion="8"
            android:targetSdkVersion="15" />
    
        <supports-screens
            android:largeScreens="true"
            android:normalScreens="true"
            android:smallScreens="true"
            android:xlargeScreens="true"
            android:resizeable="true"
            android:anyDensity="true"
            />
    
        <uses-permission android:name="android.permission.CAMERA" />
        <uses-permission android:name="android.permission.VIBRATE" />
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.RECEIVE_SMS" />
        <uses-permission android:name="android.permission.RECORD_AUDIO" />
        <uses-permission android:name="android.permission.RECORD_VIDEO"/>
        <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
        <uses-permission android:name="android.permission.READ_CONTACTS" />
        <uses-permission android:name="android.permission.WRITE_CONTACTS" />   
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />   
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <uses-permission android:name="android.permission.GET_ACCOUNTS" />
        <uses-permission android:name="android.permission.BROADCAST_STICKY" />
    
        <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <activity
                android:name=".MainActivity"
                android:label="@string/title_activity_main" >
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
    
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
        </application>
    
    </manifest>
    

    MainActivity.java

    package com.example.hellopgap;
    
    import android.app.Activity;
    import android.os.Bundle;
    import org.apache.cordova.*;
    
    public class MainActivity extends DroidGap {
    
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            super.loadUrl("file:///android_asset/www/index.html");
        }   
    }
    

    的index.html

    <!DOCTYPE html>
    
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
            <meta name="format-detection" content="telephone=no" />
            <meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
            <script type="text/javascript" charset="utf-8" src="cordova-2.2.0.js"></script>
            <script type="text/javascript" charset="utf-8">
    
                // Wait for Cordova to load
                //
                document.addEventListener("deviceready", onDeviceReady, false);
    
                // Cordova is ready
                //
                function onDeviceReady() {
                    // Empty
    
                }
    
                // alert dialog dismissed
                function alertDismissed() {
                    // do something
                }
    
                // Show a custom alertDismissed
                //
                function showAlert() {
                    navigator.notification.alert(
                        'You are the winner!',  // message
                        alertDismissed,         // callback
                        'Game Over',            // title
                        'Done'                  // buttonName
                    );
                }
    
        </script>
    
            <title>Notification Example</title>
        </head>
        <body>
            <div class="app">
                <h1>Apache Cordova</h1>
                <h3>This is sample PhoneGap apps</h3>
                <p><a href="#" onclick="showAlert(); return false;">Show Alert</a></p>
            </div>
    
        </body>
    </html>
    

    提前谢谢。

3 个答案:

答案 0 :(得分:8)

之前我遇到过同样的问题。我只是按照以下步骤开始工作:

  • 转到所选项目的属性
  • 转到java构建路径
  • 选择“订购和导出”
  • 启用所有检查(相关项目)
  • 现在只需清理并再次运行应用程序。

对我有用......

答案 1 :(得分:2)

好像你在apps res / xml目录中缺少config.xml。它作为phonegap发行版的一部分包含在lib / android / res / xml / config.xml中。将该文件复制到res / xml目录中,你应该没问题。

答案 2 :(得分:-1)

我遇到了类似的问题,今天我发现在Javascript中,除非调用了deviceready事件; 导航器设备等仍然未定义

文档中没有提到这件事。