【问题标题】:Android Phonegap fatal errorAndroid Phonegap 致命错误
【发布时间】:2014-03-05 18:25:46
【问题描述】:

我刚开始使用 phonegap,所以我完成了本教程 [http://docs.phonegap.com/en/2.0.0/guide_getting-started_android_index.md.html][1] [1]: http://docs.phonegap.com/en/2.0.0/guide_getting-started_android_index.md.html

目录:

   08-09 14:36:21.752: E/AndroidRuntime(543): FATAL EXCEPTION: main
08-09 14:36:21.752: E/AndroidRuntime(543): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.apache.cordova.example/org.apache.cordova.example.cordovaExample}: java.lang.ClassNotFoundException: org.apache.cordova.example.cordovaExample in loader dalvik.system.PathClassLoader[/data/app/org.apache.cordova.example-1.apk]
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2585)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread.access$2300(ActivityThread.java:125)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.os.Handler.dispatchMessage(Handler.java:99)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.os.Looper.loop(Looper.java:123)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread.main(ActivityThread.java:4627)
08-09 14:36:21.752: E/AndroidRuntime(543):  at java.lang.reflect.Method.invokeNative(Native Method)
08-09 14:36:21.752: E/AndroidRuntime(543):  at java.lang.reflect.Method.invoke(Method.java:521)
08-09 14:36:21.752: E/AndroidRuntime(543):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
08-09 14:36:21.752: E/AndroidRuntime(543):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
08-09 14:36:21.752: E/AndroidRuntime(543):  at dalvik.system.NativeStart.main(Native Method)
08-09 14:36:21.752: E/AndroidRuntime(543): Caused by: java.lang.ClassNotFoundException: org.apache.cordova.example.cordovaExample in loader dalvik.system.PathClassLoader[/data/app/org.apache.cordova.example-1.apk]
08-09 14:36:21.752: E/AndroidRuntime(543):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
08-09 14:36:21.752: E/AndroidRuntime(543):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
08-09 14:36:21.752: E/AndroidRuntime(543):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
08-09 14:36:21.752: E/AndroidRuntime(543):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2577)
08-09 14:36:21.752: E/AndroidRuntime(543):  ... 11 more

更新 MainActivity:

package org.apache.cordova.example;

import org.apache.cordova.DroidGap;

import android.os.Bundle;

public class MainActivity extends DroidGap
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        super.loadUrl("file:///android_asset/www/index.html");
    }
}

注意事项:

我的 .jar 文件夹名为“libs”。

我已添加 cordova2.0.0.jar 作为构建路径。

我已尝试添加 plugins.xml:

<?xml version="1.0" encoding="utf-8"?>
<plugins>
    <plugin name="App" value="com.phonegap.App"/>
    <plugin name="Geolocation" value="com.phonegap.GeoBroker"/>
    <plugin name="Device" value="com.phonegap.Device"/>
    <plugin name="Accelerometer" value="com.phonegap.AccelListener"/>
    <plugin name="Compass" value="com.phonegap.CompassListener"/>
    <plugin name="Media" value="com.phonegap.AudioHandler"/>
    <plugin name="Camera" value="com.phonegap.CameraLauncher"/>
    <plugin name="Contacts" value="com.phonegap.ContactManager"/>
    <plugin name="Crypto" value="com.phonegap.CryptoHandler"/>
    <plugin name="File" value="com.phonegap.FileUtils"/>
    <plugin name="Network Status" value="com.phonegap.NetworkManager"/>
    <plugin name="Notification" value="com.phonegap.Notification"/>
    <plugin name="Storage" value="com.phonegap.Storage"/>
    <plugin name="Temperature" value="com.phonegap.TempListener"/>
    <plugin name="FileTransfer" value="com.phonegap.FileTransfer"/>
    <plugin name="Capture" value="com.phonegap.Capture"/>
</plugins>

清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" android:windowSoftInputMode="adjustPan"
      package="org.apache.cordova.example" android:versionName="1.1" android:versionCode="5">
    <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/icon" android:label="@string/app_name"
        android:debuggable="true">
        <activity android:name="cordovaExample" android:label="@string/app_name" 
                  android:configChanges="orientation|keyboardHidden">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

    <uses-sdk android:minSdkVersion="5" />
</manifest> 

【问题讨论】:

    标签: java android html cordova


    【解决方案1】:

    我猜您 manifest.xml 中提供的包/活动名称与您的 java 文件中的包/类名称不匹配。 这就是它正在寻找的:

    Caused by: java.lang.ClassNotFoundException:     org.apache.cordova.example.cordovaExample 
    

    这就是它得到的:

    package com.example.yourappname;
    ...
    public class MainActivity extends DroidGap {
    ...
    }
    

    您的 manifest.xml 看起来如何? 可能是复制粘贴错误;)

    【讨论】:

    • 好吧,我只是尝试匹配并得到相同但仍然没有解决问题,你猜为什么?
    • 在您的清单中,仍然有 cordovaExample 作为活动名称,而您没有此类活动。我建议更改该值或重命名您的 java 文件中的活动。
    • so: - 你的类现在被命名为“cordovaExample” - 你的包显示为:“org.apache.cordova.example” - 你的文件被命名为你的类并且它仍然显示相同的错误?
    【解决方案2】:

    遇到同样的问题,烦人……现在我得到了临时解决方案……从任何工作项目中复制以下文件,并在当前项目中调速……

    ant.properties
    build.xml
    proguard-project.txt
    project.properties
    .classpath
    .project  
    

    注意:一次替换所有文件.. 在更新工作空间时,我向我提出了这个问题.. 它对我有用.. 但没有得到确切的解决方案...
    将示例项目导入一次。Phonegap/lib/android/example 以便更好地理解。

    【讨论】:

      【解决方案3】:

      我遇到了和你类似的问题。我关注了这个link

      我遇到了同样的错误。我错误地复制了整个清单文件。但后来我恢复到 Eclipse 为我创建的清单,并且只更改了使用 phonegap 所需的部分。我按照上面链接中列出的步骤进行操作,它起作用了。 (Ubuntu 10.04,Eclipse 开普勒)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-26
        • 2014-03-07
        • 2014-03-27
        • 2015-08-30
        • 2016-02-13
        • 2018-04-19
        • 2018-01-16
        • 1970-01-01
        相关资源
        最近更新 更多