java - 为什么我的 Android 项目要查找 "main"函数?

标签 java android eclipse

我使用 File->New->Android Project 在 Eclipse 中创建了一个 Android 项目。我创建了一个相同 API 版本 10 (2.3.3) 的 Android 虚拟设备。我在包 foo.foo.foo 中创建了一个 Activity Asdf

Android 项目不应该有一个 main 函数,为什么 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);
    }
}

Exception in thread "main" java.lang.NoClassDefFoundError: Caused by: 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) Could not find the main class: . Program will exit.

编辑: Activity 在 list 中声明,它也是由 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>

最佳答案

“main”是在应用程序创建时默认创建的布局文件。您可能已经从布局文件夹中删除了该布局,或者可能已经在布局文件夹中更改了它的名称。如果您设计了任何布局,请在此处引用。而 main 不是强制性的。

您是否也在 list 文件中声明了您的 Activity ?

setContentView(R.layout.main);意味着它正在寻找要显示的布局文件而不是函数

关于java - 为什么我的 Android 项目要查找 "main"函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10220513/

相关文章:

java - Android Realm 数据库安全

java - 父实体作为单向一对一关系中的所有者 Hibernate

android - 无法解决:com.onesignal:OneSignal:3.4.3

由于 gps 权限拒绝,android 应用程序在 android 4.4 上崩溃

java - 使用不同的构建文件启动 java Eclipse headless 构建

java - 如何获取存储在数据库中的图像路径并将其设置为按钮

java - 包含敏感数据的可序列化类

android - 如何从 Recyclerview 中删除项目

eclipse - 无法在 eclipse 中启动 google web app,不会完全模拟安全限制

android - 在 Android 4.2.2 和 4.3 上关闭 BluetoothSocket 时出现致命信号 11 SIGSEGV