1

[ファイル]->[新規]->[Androidプロジェクト]を使用して、EclipseでAndroidプロジェクトを作成しました。同じAPIバージョン10(2.3.3)のAndroid仮想デバイスを作成しました。パッケージfoo.foo.fooにアクティビティAsdfを作成しました

Androidプロジェクトにはメイン機能がないはずですが、なぜJavaがメイン機能を探しているのでしょうか。

package foo.foo.foo;

import android.app.Activity;
import android.os.Bundle;

public class Asdf extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

スレッド"main"の例外java.lang.NoClassDefFoundError:原因:java.lang.ClassNotFoundException:at java.net.URLClassLoader $ 1.run(URLClassLoader.java:202)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:190)at java.lang.ClassLoader.loadClass(ClassLoader.java:307)at sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301)at java.lang .ClassLoader.loadClass(ClassLoader.java:248)メインクラスが見つかりませんでした:。プログラムは終了します。

編集:アクティビティはマニフェストで宣言されます。マニフェストはEclipseによって自動生成されます。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="foo.foo.foo"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="10" />

    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".Asdf"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

    </application>
</manifest>
4

1 に答える 1

2

「main」はアプリ作成時にデフォルトで作成されるレイアウトファイルです。そのレイアウトをレイアウト フォルダーから削除したか、レイアウト フォルダーで名前を変更した可能性があります。レイアウトを設計したことがある場合は、ここを参照してください。main は必須ではありません。

また、マニフェスト ファイルでアクティビティを宣言しましたか?

setContentView(R.layout.main); 関数ではなく表示するレイアウトファイルを探していることを意味します

于 2012-04-19T01:40:59.490 に答える