Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Java:致命异常:main_Java_Android - Fatal编程技术网

Android Java:致命异常:main

Android Java:致命异常:main,java,android,Java,Android,我经常遇到一个致命的异常:测试应用程序时出现主要错误,我看不出问题出在哪里 如果有人能发现我在这方面出了错,那将是一个很大的帮助 请在下面找到我的主页的代码: public class DashboardActivity extends Activity { UserFunctions userFunctions; Button btnLogout; @Override protected void onCreate(Bundle savedInstanceState) { super

我经常遇到一个致命的异常:测试应用程序时出现主要错误,我看不出问题出在哪里

如果有人能发现我在这方面出了错,那将是一个很大的帮助

请在下面找到我的主页的代码:

public class DashboardActivity extends Activity {
UserFunctions userFunctions;
Button btnLogout;

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


     /**Dashboard Screen for the application * */       
         // Check login status in database
    userFunctions = new UserFunctions ();
    if(userFunctions.isUserLoggedIn(getApplicationContext())){
        // user already logged in show databoard
            btnLogout = (Button) findViewById(R.id.btnLogout);

        btnLogout.setOnClickListener(new View.OnClickListener() {

            public void onClick(View argo) {
                userFunctions.logoutUser(getApplicationContext());
                Intent login = new Intent (getApplicationContext(), LoginActivity.class);
                login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(login);
                finish();
            }


        });

            }else{
                Intent login = new Intent (getApplicationContext(), LoginActivity.class);
                    login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                    startActivity(login);
                    finish();




    }
 }

}
} LogCat消息:

E/AndroidRuntime(21912): FATAL EXCEPTION: main
E/AndroidRuntime(21912): android.os.NetworkOnMainThreadException
E/AndroidRuntime(21912):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1144)
E/AndroidRuntime(21912):    at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
E/AndroidRuntime(21912):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
E/AndroidRuntime(21912):    at java.net.InetAddress.getAllByName(InetAddress.java:214)
E/AndroidRuntime(21912):    at org.apache.http.impl.conn.DefaultClientConnectionOperator.openConnection(DefaultClientConnectionOperator.java:137)
E/AndroidRuntime(21912):    at org.apache.http.impl.conn.AbstractPoolEntry.open(AbstractPoolEntry.java:164)
E/AndroidRuntime(21912):    at org.apache.http.impl.conn.AbstractPooledConnAdapter.open(AbstractPooledConnAdapter.java:119)
E/AndroidRuntime(21912):    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:360)
E/AndroidRuntime(21912):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:670)
E/AndroidRuntime(21912):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:509)
E/AndroidRuntime(21912):    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:487)
E/AndroidRuntime(21912):    at com.applicationnfclogin.internal.JSONParser.getJSONFormUrl(JSONParser.java:85)
E/AndroidRuntime(21912):    at com.applicationnfclogin.internal.UserFunctions.loginUser(UserFunctions.java:33)
E/AndroidRuntime(21912):    at com.applicationnfclogin.LoginActivity$1.onClick(LoginActivity.java:84)
E/AndroidRuntime(21912):    at android.view.View.performClick(View.java:4475)
E/AndroidRuntime(21912):    at android.view.View$PerformClick.run(View.java:18786)
E/AndroidRuntime(21912):    at android.os.Handler.handleCallback(Handler.java:730)
E/AndroidRuntime(21912):    at android.os.Handler.dispatchMessage(Handler.java:92)
E/AndroidRuntime(21912):    at android.os.Looper.loop(Looper.java:176)
E/AndroidRuntime(21912):    at android.app.ActivityThread.main(ActivityThread.java:5419)
E/AndroidRuntime(21912):    at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21912):    at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(21912):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1046)
E/AndroidRuntime(21912):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:862)
E/AndroidRuntime(21912):    at dalvik.system.NativeStart.main(Native Method)

这就是strictmode的问题。。你可以用这个

StrictMode.ThreadPolicy policy = new StrictMode.
                ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

“当应用程序试图在其主线程上执行网络操作时,会引发此异常”。您应该调用asynctask。看看这个解决方案:

您正在主线程上执行
网络操作。android不允许这样做。使用
asyntask
执行网络操作。

在Android中,应避免在UI线程(也称为主线程)上执行繁重的工作,因为此时,应用程序将停止响应用户反馈(即触摸屏幕)。 您可以阅读更多关于Android中线程和进程的信息

在最新版本中,安卓已经制定了一项政策,不允许在主线程上执行网络作业,这样你的应用程序就永远不会停止运行。
为了连接到网络,您可以创建一个新线程,也可以创建一个用于处理后台线程和前台线程之间切换的线程。

请发布logcat错误请共享logcat详细信息One:)如果您还需要什么,请告诉我您是否尝试在主线程上连接到internet,使用AyncTask或处理程序连接到internet,有关详细信息,请参阅异常名称,并向您提示:
NetworkOnMainThreadException
-您应该在后台线程上进行联网,而不是在主UI线程中。即使这样做有效。用网络操作阻止UI线程仍然很糟糕!