我使用File-> New-> Android Project在Eclipse中创建了一个Android项目。我创建了一个相同API版本10(2.3.3)的Android虚拟设备。我在包foo.foo.foo
中创建了一个活动AsdfAndroid项目不应该有主要功能,那么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 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>
答案 0 :(得分:2)
“main”是将在创建应用时默认创建的布局文件。您可能已从布局文件夹中删除了该布局,或者可能已在布局文件夹中更改了该名称。如果您设计了任何布局,请在此处参考。虽然主要不是共谋。
您是否在表现文件中声明了自己的活动?
的setContentView(R.layout.main);意味着它正在使用布局文件来显示而不是函数