Android Studio无法运行单个类

时间:2018-08-24 07:50:11

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

我对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>

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

我试图借助帮助对其进行修复,但是现在第一类显示相同的错误,而第二类运行正确。也许这两个类相互影响。

2 个答案:

答案 0 :(得分:1)

首先,如错误所示

  

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

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

其次,在行

下更改
public void main(String[] args)  

public static void main(String[] args) 

您需要主要方法的关键字静态来运行该类。

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

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

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

enter image description here

然后右键单击该类以运行您的单个类,请参见下文:

enter image description here

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

enter image description here

答案 1 :(得分:0)

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

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