2016-07-14 194 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複選框/資源更改

相關問題