2010-12-02 7 views
8

私は今Androidプログラミングを始めようとしています。私は主に8年間Javaの経験がない.NET開発者(大学)です。私のアンドロイドアプリでjava.lang.ClassNotFoundExceptionが発生しましたが、理由はわかりません

サンプルをコンパイルして実行することはできますが、私のパッケージ/クラスの名前を変更しようとすると失敗します。私はそれをチェックし、マニフェスト、トリプルを更新したと信じて(コピーして貼り付けられた名前、Eclipseのとそれを選択)まだそれはいつもにjava.lang.ClassNotFoundExceptionで失敗します。


12-02 09:12:21.088: ERROR/AndroidRuntime(233): Uncaught handler: thread main exiting due to uncaught exception 
12-02 09:12:21.178: ERROR/AndroidRuntime(233): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.anddev.cheesemp.helloandworld/org.anddev.cheesemp.helloandworld.HelloAndEngine}: java.lang.ClassNotFoundException: org.anddev.cheesemp.helloandworld.HelloAndEngine in loader [email protected] 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2417) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread.access$2200(ActivityThread.java:119) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.os.Handler.dispatchMessage(Handler.java:99) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.os.Looper.loop(Looper.java:123) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread.main(ActivityThread.java:4363) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at java.lang.reflect.Method.invokeNative(Native Method) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at java.lang.reflect.Method.invoke(Method.java:521) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at dalvik.system.NativeStart.main(Native Method) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233): Caused by: java.lang.ClassNotFoundException: org.anddev.cheesemp.helloandworld.HelloAndEngine in loader [email protected] 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at java.lang.ClassLoader.loadClass(ClassLoader.java:573) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at java.lang.ClassLoader.loadClass(ClassLoader.java:532) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409) 
12-02 09:12:21.178: ERROR/AndroidRuntime(233):  ... 11 more 
 
マニフェストはここにある:

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
android:versionCode="1"
android:versionName="1.0" package="org.anddev.cheesemp.helloandworld">
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:label="@string/app_name" android:name="org.anddev.cheesemp.helloandworld.HelloAndEngine">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" \>
</manifest>
クラス


package org.anddev.cheesemp.helloandworld; 

import org.anddev.andengine.engine.Engine; 
import org.anddev.andengine.engine.camera.Camera; 
import org.anddev.andengine.engine.options.EngineOptions; 
import org.anddev.andengine.engine.options.EngineOptions.ScreenOrientation; 
import org.anddev.andengine.engine.options.resolutionpolicy.RatioResolutionPolicy; 
import org.anddev.andengine.entity.scene.Scene; 
import org.anddev.andengine.entity.scene.background.ColorBackground; 
import org.anddev.andengine.entity.text.Text; 
import org.anddev.andengine.entity.util.FPSLogger; 
import org.anddev.andengine.opengl.font.Font; 
import org.anddev.andengine.opengl.texture.Texture; 
import org.anddev.andengine.opengl.texture.TextureOptions; 
import org.anddev.andengine.ui.activity.BaseGameActivity; 
import org.anddev.andengine.util.HorizontalAlign; 

import android.graphics.Color; 
import android.graphics.Typeface; 

/** 
* @author Nicolas Gramlich 
* @since 11:54:51 - 03.04.2010 
*/ 
public class HelloAndEngine extends BaseGameActivity 

このサンプルはAndEngineのものですが、変更するすべてのサンプルで同じ問題が発生しています。私は助けることができませんが、私は何かを逃したと感じ、何か私は検索が見つかりましたが見つかりました。

アドバイスありがとうございます。

答えて

18

これを試してください。

<activity android:label="@string/app_name" android:name=".HelloAndEngine"> 

完全修飾クラス名は必要ありません。また、Eclipseで作業していて、パッケージの名前を変更する場合は、ProjectCleanに移動し、プロジェクトがクリーンアップされているかどうか確認してください。

+1

"。"最初は完全なパッケージ名の前に暗黙的に追加されます。 – EboMike

+0

@EboMike:まったく。なぜ彼は完全なパッケージ名が必要でしょうか?彼はちょうどしません。 –

+0

実際には、ピリオドだけを使用することをお勧めします。しかし、これで問題は解決しますか?問題は、クラスローダーがorg.anddev.cheesemp.helloandworld.HelloAndEngineクラスを見つけることができず、存在することを示していることです。 – EboMike

2

これは、修正するために日食アンドロイドツールのバグ http://code.google.com/p/android/issues/detail?id=2824

ある - ..>アプリケーションパッケージの名前を変更し

をし、また、それならばのAndroidManifest.xmlをチェック - 右のAndroidツールに行くプロジェクトをクリックしてください>正しく更新されました。私のケースでは、この問題を解決するはずです。

関連する問題