|
|
|
Android ผมลองเขียนปุ่ม login facebook แล้วมันขึ้น error รบกวนช่วยแนะนำหน่อยว่ามต้องแก้ไขตรงไหน |
|
|
|
|
|
|
|
ด้านล่างเป็นผมโค้ดที่ผมเขียนตามเว็บที่ผมเจอ พอลองทำตาม ปรากฏว่ามันพอรันบนโทรศัพท์แล้วมันขึ้น unfortunately, AAAA has stopped.
ไฟล์
activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.facebook.widget.LoginButton
android:id="@+id/facebookLoginButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_marginTop="50dp" />
</LinearLayout>
ไฟล์ MainActivity.java
MainActivity.java
package com.example.firstlogin;
import android.content.Intent;
import android.os.*;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v7.app.ActionBarActivity;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Toast;
import com.facebook.Request;
import com.facebook.Request.GraphUserCallback;
import com.facebook.Response;
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.model.GraphUser;
import com.facebook.widget.LoginButton;
public class MainActivity extends ActionBarActivity {
private static String TAG = MainActivity.class.getSimpleName();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.add(R.id.facebookLoginButton, new PlaceholderFragment())
.commit();
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
/**
* A placeholder fragment containing a simple view.
*/
public static class PlaceholderFragment extends Fragment {
private UiLifecycleHelper uiHelper;
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);
}
};
public PlaceholderFragment() {
}
private void onSessionStateChange(Session session, SessionState state, Exception exception) {
if (state.isOpened()) {
Request request = Request.newMeRequest(session, new GraphUserCallback() {
@Override
public void onCompleted(GraphUser user, Response response) {
Toast.makeText(getActivity(),
"Hello " + user.getName(),
Toast.LENGTH_LONG).show();
}
});
request.executeAsync();
} else if (state.isClosed()) {
Log.i(TAG, "Logged out...");
}
}
@Override
public void onResume() {
super.onResume();
Session session = Session.getActiveSession();
if (session != null &&
(session.isOpened() || session.isClosed()) ) {
onSessionStateChange(session, session.getState(), null);
}
uiHelper.onResume();
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
uiHelper.onActivityResult(requestCode, resultCode, data);
}
@Override
public void onPause() {
super.onPause();
uiHelper.onPause();
}
@Override
public void onDestroy() {
super.onDestroy();
uiHelper.onDestroy();
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
uiHelper.onSaveInstanceState(outState);
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
uiHelper = new UiLifecycleHelper(getActivity(), callback);
uiHelper.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.activity_main, container,
false);
LoginButton authButton = (LoginButton) rootView.findViewById(R.id.facebookLoginButton);
authButton.setFragment(this);
return rootView;
}
}
}
LogCat Error
02-18 13:30:05.157: E/Trace(24887): error opening trace file: Permission denied (13)
02-18 13:30:05.247: E/ResourceType(24887): Style contains key with bad entry: 0x01010479
02-18 13:30:05.317: W/dalvikvm(24887): VFY: unable to resolve virtual method 11453: Landroid/view/ViewGroup;.onNestedScrollAccepted (Landroid/view/View;Landroid/view/View;I)V
02-18 13:30:05.317: W/dalvikvm(24887): VFY: unable to resolve virtual method 11459: Landroid/view/ViewGroup;.onStopNestedScroll (Landroid/view/View;)V
02-18 13:30:05.327: W/dalvikvm(24887): VFY: unable to resolve virtual method 9137: Landroid/support/v7/internal/widget/ActionBarOverlayLayout;.stopNestedScroll ()V
02-18 13:30:05.397: W/dalvikvm(24887): VFY: unable to resolve virtual method 11456: Landroid/view/ViewGroup;.onRtlPropertiesChanged (I)V
02-18 13:30:05.407: W/dalvikvm(24887): VFY: unable to resolve virtual method 411: Landroid/content/res/TypedArray;.getChangingConfigurations ()I
02-18 13:30:05.407: W/dalvikvm(24887): VFY: unable to resolve virtual method 433: Landroid/content/res/TypedArray;.getType (I)I
02-18 13:30:05.567: D/dalvikvm(24887): GC_CONCURRENT freed 211K, 5% free 8318K/8711K, paused 20ms+10ms, total 51ms
02-18 13:30:05.577: W/dalvikvm(24887): threadid=1: thread exiting with uncaught exception (group=0x41c0c438)
02-18 13:30:05.577: E/AndroidRuntime(24887): FATAL EXCEPTION: main
02-18 13:30:05.577: E/AndroidRuntime(24887): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.firstlogin/com.example.firstlogin.MainActivity}: java.lang.ClassCastException: com.facebook.widget.LoginButton cannot be cast to android.view.ViewGroup
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2068)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2093)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread.access$600(ActivityThread.java:134)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1204)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.os.Handler.dispatchMessage(Handler.java:99)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.os.Looper.loop(Looper.java:137)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread.main(ActivityThread.java:4814)
02-18 13:30:05.577: E/AndroidRuntime(24887): at java.lang.reflect.Method.invokeNative(Native Method)
02-18 13:30:05.577: E/AndroidRuntime(24887): at java.lang.reflect.Method.invoke(Method.java:511)
02-18 13:30:05.577: E/AndroidRuntime(24887): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
02-18 13:30:05.577: E/AndroidRuntime(24887): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
02-18 13:30:05.577: E/AndroidRuntime(24887): at dalvik.system.NativeStart.main(Native Method)
02-18 13:30:05.577: E/AndroidRuntime(24887): Caused by: java.lang.ClassCastException: com.facebook.widget.LoginButton cannot be cast to android.view.ViewGroup
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:937)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:739)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1489)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:548)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1163)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.Activity.performStart(Activity.java:5018)
02-18 13:30:05.577: E/AndroidRuntime(24887): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2041)
02-18 13:30:05.577: E/AndroidRuntime(24887): ... 11 more
02-18 13:30:07.477: D/dalvikvm(24887): GC_CONCURRENT freed 331K, 6% free 8432K/8967K, paused 12ms+12ms, total 42ms
Tag : Mobile, Android
|
|
|
|
|
|
Date :
2015-02-18 13:27:38 |
By :
funrun |
View :
1124 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แล้วควรจะแก้ยังไงอะครับ
|
|
|
|
|
Date :
2015-02-18 17:00:49 |
By :
funrun |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|