2016-07-14 131 views
0

我正在尝试使用cordova构建HelloWorld android应用程序。 我正在关注下面提到的脚步 http://javaonlineguide.net/2015/06/apache-cordova-hello-world-program-for-android-platform-in-eclipse-example.htmljava.lang.RuntimeException:无法实例化活动ComponentInfo {}:java.lang.ClassNotFoundException

我一直在浏览这个问题,我很确定我没有提到过的问题。我的两个活动都在AndroidManifest中声明,意图过滤器在那里。我尝试通过.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); 
    } 
} 

回答

1

因为你声明这样

<activity 
     android:name="MainActivity" 

只是把.MainActivity这样

<activity 
      android:name=".MainActivity" 
+0

嗨铁人,感谢您的回应。我试过了。但错误仍然存​​在 –

+0

@Kunalbadade'干净'的项目.. – Ironman

+0

是的。我做到了。建议更改后尝试清洁和建设项目。 –

0

在您的清单,在你的activity标签中添加一个'。' MainActivity

`android:name=".MainActivity"` 

之前,可以考虑android.namepackage名的延续。所以,如果没有这个点,那就是com.example.mainMainActivity这是错误的。正确的结构将是com.example.main.MainActivity

+0

我都试过一遍,但仍然没有运气 –

+0

清洁和建设。在此之后让我知道错误是什么。 – Tony

+0

尝试清洁和建设。我得到同样的错误。 –

0

所有我需要做的就是用科尔多瓦构建应用程序。

我是建设项目在Eclipse但我也需要用命令行编译项目:

E:\Software\Demo\VMSapp>cordova build 

此命令更新APK文件。

0

我重新启动了设备,它刚刚工作!

+0

这应该是一个评论 –

4

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

文件 - >设置 - >建设 - >即时运行 - >启用即时运行于热插拔代码Disble复选框/资源更改

相关问题