2017-05-30 274 views
0

堆栈跟踪Facebook登录了Android

失败

05-30 16:50:36.015 7351-7351/com.example.android.facebooklogin E/dalvikvm:找不到类 'android.graphics.drawable.RippleDrawable' ,从方法android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering引用 05-30 16:50:37.658 7351-7351/com.example.android.facebooklogin E/AndroidRuntime:致命例外:main 进程:com.example。 android.facebooklogin,PID:7351 登录尝试失败:无法启动LoginActivity at com.facebook.login.LoginManager.startLogin(LoginManager.java:382) 在com.facebook.login.LoginManager.logInWithReadPermissions(LoginManager.java:262) at com.facebook.login.widget.LoginButton $ LoginClickListener.onClick(LoginButton.java:693) at com.facebook.FacebookButtonBase $ 1.onClick( FacebookButtonBase.java:310) at android.view.View.performClick(View.java:4486) at android.view.View $ PerformClick.run(View.java:18801) at android.os.Handler.handleCallback( Handler.java:808) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread。 java:5390) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit的.java:833) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:649) 在dalvik.system.NativeStart.main(本机方法)

MainActivity.java

package com.example.android.facebooklogin; 

    import android.content.Intent; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.view.View; 
    import android.widget.TextView; 

    import com.facebook.CallbackManager; 
    import com.facebook.FacebookCallback; 
    import com.facebook.FacebookException; 
    import com.facebook.FacebookSdk; 
    import com.facebook.login.LoginResult; 
    import com.facebook.login.widget.LoginButton; 

    public class MainActivity extends AppCompatActivity { 
    TextView info; 
    LoginButton loginButton; 
    CallbackManager callbackManager; 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     callbackManager.onActivityResult(requestCode, resultCode, data); 
    } 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FacebookSdk.sdkInitialize(getApplicationContext()); 

     callbackManager = CallbackManager.Factory.create(); 
     setContentView(R.layout.activity_main); 
     info = (TextView) findViewById(R.id.info); 
     loginButton = (LoginButton) findViewById(R.id.login_button); 
     loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() { 
        @Override 
        public void onSuccess(LoginResult loginResult) { 
         info.setText(
           "User ID: " + loginResult.getAccessToken().getUserId() 
             + "\n" + "Auth Token: " + loginResult.getAccessToken().getToken() 
         ); 
        } 
        // 
        @Override 
        public void onCancel() { 
         info.setText("Login attempt cancelled. "); 

        } 

        @Override 
        public void onError(FacebookException error) { 
         info.setText("Login attempt failed. "); 

        } 
       }); 
    } 

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    tools:context="com.example.android.facebooklogin.MainActivity"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/info" 
     android:text="Hello World!" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:textSize="18sp"/> 

    <com.facebook.login.widget.LoginButton 
     android:id="@+id/login_button" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerInParent="true"/> 

    </RelativeLayout> 

清单文件

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

    <uses-permission android:name="android.permission.INTERNET" /> 

    <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"> 
     <meta-data 
      android:name="com.facebook.sdk.ApplicationId" 
      android:value="@string/facebook_app_id" /> 
     <!--<activity android:name=".MainActivity">--> 
     <activity 
      android:name=".MainActivity" 

      android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
      android:label="@string/app_name"> 
      <activity android:name="com.facebook.FacebookActivity" 
       android:theme="@android:style/Theme.Translucent.NoTitleBar" 
       android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation" 
       android:label="@string/app_name" /> 

      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.DEFAULT" /> 
       <category android:name="android.intent.category.BROWSABLE" /> 

       <data android:scheme="@string/fb_login_protocol_scheme" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

    </application> 

</manifest> 

应用程序ID

<string name="facebook_app_id">xxxxxxxxxxxxxxxx</string> 
+0

阅读https://stackoverflow.com/questions/37108618/could-not-find-class-android-graphics-drawable-rippledrawable –

+0

阅读https://stackoverflow.com/questions/37108618/could-not-find -class-android-graphics-drawable-rippledrawable –

+0

@ ND1010_我在这里找不到解决方案。 –

回答

0

RippleDrawable在API 21中添加,所以它不是可在先前版本的SDK。

您可以将可绘制文件移动到res/drawable-v21以确保它在早期版本中不会崩溃。