Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.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
Java 不幸的是,AppName在单击按钮后已停止_Java_Android_Facebook Graph Api - Fatal编程技术网

Java 不幸的是,AppName在单击按钮后已停止

Java 不幸的是,AppName在单击按钮后已停止,java,android,facebook-graph-api,Java,Android,Facebook Graph Api,我登录并在Edittext中输入消息。但当我单击“发送”按钮时,一个应用程序显示Webview弹出窗口,显示消息“不幸的是,AppName已停止” 像facebook上的WebView登录弹出窗口一样的WebView弹出窗口 MainActivity.java public class MainActivity extends Activity { public static Facebook facebook = new Facebook("apikey"); AsyncFacebookRu

我登录并在Edittext中输入消息。但当我单击“发送”按钮时,一个应用程序显示Webview弹出窗口,显示消息“不幸的是,AppName已停止”

像facebook上的WebView登录弹出窗口一样的WebView弹出窗口

MainActivity.java

public class MainActivity extends Activity {

public static Facebook facebook = new Facebook("apikey");
AsyncFacebookRunner mAsyncRunner = new AsyncFacebookRunner(facebook);
String token;
Button login;
Button send;
EditText msg;
TextView onoff;
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.postapp);
    login = (Button)findViewById(R.id.login);
    send = (Button)findViewById(R.id.send);
    msg = (EditText)findViewById(R.id.msg);
    onoff = (TextView)findViewById(R.id.onoff);
    login.setOnClickListener(new OnClickListener()
    {
        public void onClick(View v) {
            facebook.authorize(MainActivity.this, new String[]{"publish_stream"}, new DialogListener(){

                @Override
                public void onComplete(Bundle values) {
                    onoff.setText("On");
                    token =values.getString(Facebook.TOKEN);
                }

                @Override
                public void onFacebookError(FacebookError e) {
                    Log.d("FACEBOOK ERROR","FB ERROR. MSG: "+e.getMessage()+", CAUSE: "+e.getCause());
                }

                @Override
                public void onError(DialogError e) {
                    Log.e("ERROR","AUTH ERROR. MSG: "+e.getMessage()+", CAUSE: "+e.getCause());
                }

                @Override
                public void onCancel() {
                    Log.d("CANCELLED","AUTH CANCELLED");
                }
            });

        }
    });

    send.setOnClickListener(new OnClickListener(){
        public void onClick(View v) {
            updateStatus(token);
        }
    });
}

public void updateStatus(String accessToken){
    try {
        Bundle bundle = new Bundle();
        bundle.putString("message",msg.getText().toString());
        bundle.putString(Facebook.TOKEN,accessToken);
        String response = facebook.request("me/feed",bundle,"POST");
        Log.d("UPDATE RESPONSE",""+response);
    } catch (MalformedURLException e) {
        Log.e("MALFORMED URL",""+e.getMessage());
    } catch (IOException e) {
        Log.e("IOEX",""+e.getMessage());
    }
}
}
和postpp.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <Button
        android:id="@+id/login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Sign-in" />

    <TextView
        android:id="@+id/onoff"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="off"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <EditText
        android:id="@+id/msg"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:ems="10" />

    <Button
        android:id="@+id/send"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:text="Send" />
</LinearLayout>

在LogCat中单击发送时

12-05 05:08:57.376: E/AndroidRuntime(539): FATAL EXCEPTION: main
12-05 05:08:57.376: E/AndroidRuntime(539): android.os.NetworkOnMainThreadException
12-05 05:08:57.376: E/AndroidRuntime(539):  at  android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
12-05 05:08:57.376: E/AndroidRuntime(539):  at java.net.InetAddress.lookupHostByName(InetAddress.java:391)
12-05 05:08:57.376: E/AndroidRuntime(539):  at java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
12-05 05:08:57.376: E/AndroidRuntime(539):  at java.net.InetAddress.getAllByName(InetAddress.java:220)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:71)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:432)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
12-05 05:08:57.376: E/AndroidRuntime(539):  at libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:164)
12-05 05:08:57.376: E/AndroidRuntime(539):  at com.facebook.android.Util.openUrl(Util.java:193)
12-05 05:08:57.376: E/AndroidRuntime(539):  at com.facebook.android.Facebook.request(Facebook.java:777)
12-05 05:08:57.376: E/AndroidRuntime(539):  at facebook.appwall.MainActivity.updateStatus(MainActivity.java:84)
12-05 05:08:57.376: E/AndroidRuntime(539):  at facebook.appwall.MainActivity$2.onClick(MainActivity.java:74)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.view.View.performClick(View.java:3480)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.view.View$PerformClick.run(View.java:13983)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.os.Handler.handleCallback(Handler.java:605)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.os.Looper.loop(Looper.java:137)
12-05 05:08:57.376: E/AndroidRuntime(539):  at android.app.ActivityThread.main(ActivityThread.java:4340)
12-05 05:08:57.376: E/AndroidRuntime(539):  at java.lang.reflect.Method.invokeNative(Native Method)
12-05 05:08:57.376: E/AndroidRuntime(539):  at java.lang.reflect.Method.invoke(Method.java:511)
12-05 05:08:57.376: E/AndroidRuntime(539):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-05 05:08:57.376: E/AndroidRuntime(539):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-05 05:08:57.376: E/AndroidRuntime(539):  at dalvik.system.NativeStart.main(Native Method)
12-05 05:08:57.376:E/AndroidRuntime(539):致命异常:主
12-05 05:08:57.376:E/AndroidRuntime(539):android.os.NetworkOnMainThreadException
12-05 05:08:57.376:E/AndroidRuntime(539):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1084)
12-05 05:08:57.376:E/AndroidRuntime(539):位于java.net.InetAddress.lookupHostByName(InetAddress.java:391)
12-05 05:08:57.376:E/AndroidRuntime(539):位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:242)
12-05 05:08:57.376:E/AndroidRuntime(539):位于java.net.InetAddress.getAllByName(InetAddress.java:220)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpConnection.(HttpConnection.java:71)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpConnection.(HttpConnection.java:50)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:351)
12-05 05:08:57.376:E/AndroidRuntime(539):位于libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:86)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpConnection.connect(HttpConnection.java:128)上
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:308)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:460)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpsURLConnectionImpl$HttpsEngine.connect(HttpsURLConnectionImpl.java:432)
12-05 05:08:57.376:E/AndroidRuntime(539):位于libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:282)
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:232)上
12-05 05:08:57.376:E/AndroidRuntime(539):在libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
12-05 05:08:57.376:E/AndroidRuntime(539):位于libcore.net.http.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:164)
12-05 05:08:57.376:E/AndroidRuntime(539):在com.facebook.android.Util.openUrl(Util.java:193)上
12-05 05:08:57.376:E/AndroidRuntime(539):在com.facebook.android.facebook.request(facebook.java:777)上
12-05 05:08:57.376:E/AndroidRuntime(539):在facebook.appwall.MainActivity.updateStatus(MainActivity.java:84)
12-05 05:08:57.376:E/AndroidRuntime(539):在facebook.appwall.MainActivity$2.onClick(MainActivity.java:74)
12-05 05:08:57.376:E/AndroidRuntime(539):在android.view.view.performClick(view.java:3480)
12-05 05:08:57.376:E/AndroidRuntime(539):在android.view.view$PerformClick.run(view.java:13983)
12-05 05:08:57.376:E/AndroidRuntime(539):在android.os.Handler.handleCallback(Handler.java:605)上
12-05 05:08:57.376:E/AndroidRuntime(539):位于android.os.Handler.dispatchMessage(Handler.java:92)
12-05 05:08:57.376:E/AndroidRuntime(539):在android.os.Looper.loop(Looper.java:137)
12-05 05:08:57.376:E/AndroidRuntime(539):位于android.app.ActivityThread.main(ActivityThread.java:4340)
12-05 05:08:57.376:E/AndroidRuntime(539):位于java.lang.reflect.Method.Invokenactive(本机方法)
12-05 05:08:57.376:E/AndroidRuntime(539):位于java.lang.reflect.Method.invoke(Method.java:511)
12-05 05:08:57.376:E/AndroidRuntime(539):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-05 05:08:57.376:E/AndroidRuntime(539):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-05 05:08:57.376:E/AndroidRuntime(539):在dalvik.system.NativeStart.main(本机方法)

您正试图在当前代码中的主UI线程上执行网络操作。所以,避免UI挂起和应用程序崩溃使用


将所有facebook网络操作代码放入
doInBackground
中,并将所有更新UI内容的代码放入
AsyncTask
onPostExecute
中,以避免“不幸的是,AppName已停止。”消息您可以在授权方法之前添加这些代码行

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

尝试你的应用程序超越蜂巢。 在3.0以下的较低版本中,它不会显示此异常。在2.2或2.3上尝试它,它会起作用。
将对您有所帮助。

它不会无缘无故地停止。。。读logcat logcat logcat说什么?你的网络视图代码是什么?