【问题标题】:Android Studio cant run a single classAndroid Studio 无法运行单个类
【发布时间】:2019-01-30 15:51:45
【问题描述】:

我在使用 Android Studio 时遇到问题。 我有两个类的代码几乎相同。

第一个类运行没有问题,但第二个类导致错误。

第一课:

package com.example.guenes2.emobilitylab;

import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class NEFZ2array extends AppCompatActivity implements Serializable {

public static void main(String[] args) {
    FileReader file = null;
    try {
        file = new FileReader("NEFZ.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    ArrayList<Double> Nlist = new ArrayList<Double>();
    int i=0;
    Double d= null;
    try {
        BufferedReader input = new BufferedReader(file);
        String s=null;
        while((s=input.readLine())!=null) {
            StringTokenizer st = new StringTokenizer(s,",");
            while(st.hasMoreTokens()) {
                try {
                    d = Double.parseDouble(st.nextToken());
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Nlist.add(i, d);
            }
        }
        input.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
    for(double j:Nlist) {
        System.out.println(j);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_nefz2array);

}
}

第二课:

package com.example.guenes2.emobilitylab;

import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

import android.content.Intent;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class WLTP2array extends AppCompatActivity implements Serializable {

public void main(String[] args) {
    FileReader file = null;
    try {
        file = new FileReader("WLTP.txt");
    } catch (FileNotFoundException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }
    ArrayList<Double> Wlist = new ArrayList<Double>();
    int i=0;
    Double d= null;
    try {
        BufferedReader input = new BufferedReader(file);
        String s=null;
        while((s=input.readLine())!=null) {
            StringTokenizer st = new StringTokenizer(s,",");
            while(st.hasMoreTokens()) {
                try {
                    d = Double.parseDouble(st.nextToken());
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                Wlist.add(i, d);
            }
        }
        input.close();
    } catch(Exception e) {
        e.printStackTrace();
    }
    for(double k:Wlist) {
        System.out.println(k);
    }
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_wltp2array);
}
}

第二课的错误:

Error running 'WLTP2array': The activity must be exported or contain an intent-filter

我不明白这个错误的原因是什么。我知道我可以通过更改清单来修复错误,但是我无法运行这个单一的类。整个应用程序运行。

感谢您的建议。

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.guenes2.emobilitylab">

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".fahrzeugsimulation" />
    <activity android:name=".elektrofahrzeug" />
    <activity android:name=".hybridfahrzeug" />
    <activity android:name=".brennstoffzellenfahrzeug" />
    <activity android:name=".ergebnisse" />
    <activity android:name=".ausfuehrlicher" />
    <activity android:name=".VerlRadleistung" />
    <activity android:name=".HaufRad" />
    <activity android:name=".VerlEM" />
    <activity android:name=".BetriebsVKM" />
    <activity android:name=".bearbeitung" />
    <activity android:name=".info" />
    <activity android:name=".info2" />
    <activity android:name=".info3" />
    <activity android:name=".ergebnisse2" />
    <activity android:name=".elektroTabelle" />
    <activity android:name=".hybridTabelle" />
    <activity android:name=".brennstoffzelleTabelle" />
    <activity android:name=".WLTP2array" />
    <activity android:name=".NEFZ2array" />
</application>

</manifest>

编辑------------------------------ ---------------------

我试图在帮助下修复它,但现在第一个类显示相同的错误,第二个运行正确。也许这两个类会相互影响。

【问题讨论】:

  • Manifest 中有 Intent 过滤器吗?
  • 是的,我添加了我的清单。你可以在那里看到它。
  • 我已经看到了你的两个问题。您似乎对 Android 开发感到困惑。 Android 中没有 main() 方法。您不会在 Android 中“运行课程”。在 Android 中,有一些组件是由 Android 框架启动的。这些组件是:Activity, Service, BroadcastReceiver and Provider。您不能自己启动任何这些组件,它们只能由 Android 框架实例化和启动。这就是您遇到所有这些问题的原因。

标签: java android android-studio android-intent bufferedreader


【解决方案1】:

首先,如错误所示

运行“WLTP2array”时出错:必须导出活动或包含意图过滤器

您需要在manifest.xml 文件中注册您的活动,类似于您的活动NEFZ2array。检查您的manifest.xml 并正确声明WLTP2array

其次,下一行改

public void main(String[] args)  

public static void main(String[] args) 

ma​​in 方法需要关键字 static 才能运行该类。

----- 编辑 ------

最后,编辑您的运行/调试配置

添加新配置 -> 应用程序,选择主类,配置工作目录使用模块的类路径

然后右键单击该类以运行您的单个类,如下所示:

所以,最后,当您打开“运行/调试配置”时,应该如下所示:

【讨论】:

  • 谢谢,我没看到。我改变了,但错误是一样的。
  • 对于Android,不推荐添加“main”方法。如果你只是想测试你的功能,那么你应该把它作为一个测试用例,无论是单元测试用例还是安卓仪器测试用例。
【解决方案2】:

您的清单中必须包含以下内容:

<activity android:name=".WLTP2array" >
    <intent-filter>
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

【讨论】:

  • 但我想运行类而不是应用程序。
猜你喜欢
  • 2019-03-13
  • 2016-09-20
  • 1970-01-01
  • 2022-12-17
  • 2017-05-16
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 2016-09-13
相关资源
最近更新 更多