java.lang.RuntimeException:无法实例化活动ComponentInfo {}:java.lang.ClassNotFoundException

时间:2016-07-14 10:37:53

标签: java android eclipse cordova

我正在尝试使用cordova构建一个HelloWorld Android应用程序。 我跟随下面提到的脚步声 http://javaonlineguide.net/2015/06/apache-cordova-hello-world-program-for-android-platform-in-eclipse-example.html

我一直在浏览这个问题,我很确定我没有提到的问题。我的两个活动都在AndroidManifest中声明,而intent过滤器就在那里。我尝试用.MainActivity替换我的Manifest com.example.main.MainActivity,但仍然没有运气。我正在使用Eclipse IDE 在Java构建路径中 - >订单和出口 检查Android私有库

我一次又一次地尝试建造和清洁项目。我甚至尝试重启Eclipse。

Project Explorer

这是Logcat:

07-14 06:07:36.169: E/AndroidRuntime(1133): FATAL EXCEPTION: main
07-14 06:07:36.169: E/AndroidRuntime(1133): Process: com.example.main, PID: 1133
07-14 06:07:36.169: E/AndroidRuntime(1133): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.main/com.example.main.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.example.main.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.main-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.main-1, /system/lib]]
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2110)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2233)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread.access$800(ActivityThread.java:135)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.os.Handler.dispatchMessage(Handler.java:102)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.os.Looper.loop(Looper.java:136)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread.main(ActivityThread.java:5001)
07-14 06:07:36.169: E/AndroidRuntime(1133): at java.lang.reflect.Method.invokeNative(Native Method)
07-14 06:07:36.169: E/AndroidRuntime(1133): at java.lang.reflect.Method.invoke(Method.java:515)
07-14 06:07:36.169: E/AndroidRuntime(1133): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-14 06:07:36.169: E/AndroidRuntime(1133): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-14 06:07:36.169: E/AndroidRuntime(1133): at dalvik.system.NativeStart.main(Native Method)
07-14 06:07:36.169: E/AndroidRuntime(1133): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.main.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.main-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.example.main-1, /system/lib]]
07-14 06:07:36.169: E/AndroidRuntime(1133): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
07-14 06:07:36.169: E/AndroidRuntime(1133): at java.lang.ClassLoader.loadClass(ClassLoader.java:497)
07-14 06:07:36.169: E/AndroidRuntime(1133): at java.lang.ClassLoader.loadClass(ClassLoader.java:457)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
07-14 06:07:36.169: E/AndroidRuntime(1133): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2101)

这是AndroidManifest.xml:

<?xml version='1.0' encoding='utf-8'?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.main"
android:hardwareAccelerated="true"
android:versionCode="1"
android:versionName="0.0.1" >

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

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

<application
    android:hardwareAccelerated="true"
    android:icon="@drawable/icon"
    android:label="@string/app_name"
    android:supportsRtl="true" >
    <activity
        android:name="MainActivity"
           android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale"
        android:label="@string/activity_name"
        android:launchMode="singleTop"
        android:theme="@android:style/Theme.DeviceDefault.NoActionBar"
        android:windowSoftInputMode="adjustResize" >
        <intent-filter android:label="@string/launcher_name" >
            <action android:name="android.intent.action.MAIN" />

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

<uses-sdk
    android:minSdkVersion="14"
    android:targetSdkVersion="23" />

</manifest>

这是MainActivity.java

package com.example.main;

import android.os.Bundle;
import org.apache.cordova.*;

public class MainActivity extends CordovaActivity
{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        // Set by <content src="index.html" /> in config.xml
        loadUrl(launchUrl);
    }
}

6 个答案:

答案 0 :(得分:5)

我已经停止了从Android工作室及其工作的即时运行。

文件 - &gt;设置 - &gt;构建 - &gt;即时运行 - &gt;禁用复选框启用即时运行到热交换代码/资源更改

答案 1 :(得分:1)

因为你是这样声明的

  <activity
        android:name="MainActivity"

只需将.添加到MainActivity,就像这样

 <activity
            android:name=".MainActivity"

答案 2 :(得分:0)

在您的清单中,在您的活动代码中添加“。”在MainActivity之前

`android:name=".MainActivity"`

您可以将android.name视为package名称的延续。所以,没有点,com.example.mainMainActivity就是错误的。正确的结构是com.example.main.MainActivity

答案 3 :(得分:0)

我需要做的就是使用Cordova构建应用程序。

我在Eclipse中构建项目但是我还需要使用命令构建项目:

Caused by: java.lang.IllegalArgumentException: Not an entity: class es.prodevelop.pui.common.jpa.model.views.dto.VLanguage
    at org.hibernate.jpa.internal.metamodel.MetamodelImpl.entity(MetamodelImpl.java:194)
    at org.hibernate.jpa.criteria.QueryStructure.from(QueryStructure.java:124)
    at org.hibernate.jpa.criteria.CriteriaQueryImpl.from(CriteriaQueryImpl.java:156)
    at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.applySpecificationToCriteria(AbstractRepository.java:213)
    at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.getQuery(AbstractRepository.java:174)
    at es.prodevelop.pui.common.jpa.configuration.AbstractRepository.findAll(AbstractRepository.java:151)
    ...

此命令更新APK文件。

答案 4 :(得分:0)

我重启了我的设备,它刚刚起作用了!

答案 5 :(得分:0)

在清单中,如果名称已经'.MainActivity'并且仍然显示错误,请执行此操作。

例如:

<activity
            android:name="com.pakgename.MainActivity"
            ...
</activity>