私は初心者で、Facebook統合を使用してアプリを作成しようとしています。
すべての手順を完了しました(モジュール構造にFacebook SDKをインポートし、不足している依存関係をgradleファイルに追加し、アプリプロジェクトの依存関係モジュールを構造に再度追加します)。すべてが正常であるように見えました。main_activity.xmlに単純なLoginButtonを追加しましたが、エラーは表示されませんでした。
MainActivity.Javaで必要なすべてのFacebookインポートを実行しようとしたため、すべて赤になりました。それらは次のような輸入品でした:
import com.facebook.Session;
import com.facebook.SessionState;
import com.facebook.UiLifecycleHelper;
import com.facebook.widget.LoginButton;
import com.facebook.widget.LoginButton.UserInfoChangedCallback;
「シンボルセッションを解決できません」などのメッセージ。私はそれを可能な限りグーグルで検索しましたが、私に役立つ解決策を見つけることができませんでした。反対に、これには問題がないようです。
import com.facebook.login.widget.LoginButton;
これが私のAndroidマニフェストファイルXMLです:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:Android="http://schemas.Android.com/apk/res/Android"
package="com.user.moviere" >
<uses-permission Android:name="Android.permission.INTERNET"/>
<application
Android:allowBackup="true"
Android:icon="@mipmap/ic_launcher"
Android:label="@string/app_name"
Android:theme="@style/AppTheme" >
<meta-data Android:name="com.facebook.sdk.ApplicationId" Android:value="@string/facebook_app_id"/>
<activity
Android:name=".MainActivity"
Android:label="@string/app_name" >
<intent-filter>
<action Android:name="Android.intent.action.MAIN" />
<category Android:name="Android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity Android:name="com.facebook.LoginActivity"
Android:theme="@Android:style/Theme.Translucent.NoTitleBar"
Android:label="@string/app_name" />
<meta-data Android:name="com.facebook.sdk.ApplicationId" Android:value="@string/facebook_app_id"/>
<activity Android:name="com.facebook.FacebookActivity"
Android:configChanges=
"keyboard|keyboardHidden|screenLayout|screenSize|orientation"
Android:theme="@Android:style/Theme.Translucent.NoTitleBar"
Android:label="@string/app_name" />
</application>
</manifest>
そしてこれが私のbuild.gradleです
apply plugin: 'com.Android.application'
Android {
compileSdkVersion 21
buildToolsVersion '21.1.2'
defaultConfig {
applicationId "com.user.moviere"
minSdkVersion 9
targetSdkVersion 22
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
// compile project(':facebook')
compile 'com.Android.support:appcompat-v7:22.0.0'
compile 'com.facebook.Android:facebook-Android-sdk:4.0.0'
compile 'com.Android.support:support-v4:22.0.0'
}
わかりました。最初からプロジェクトを作成し、FBSDKを再度インポートしました。しかし、インポートの本当の問題は、Facebook SDK 4がいくつかの関数を変更したことでした。たとえば、そのうちの1つはUiLifecycleHelperであり、もう存在しません。
すべての変更の詳細はこちらです:
ええ、Facebook SDKの現在のアップデートでは、Sessionが削除されました。現在、AccessToken、LoginManager、およびCallbackManagerクラスが、Sessionクラスの機能に取って代わります。
詳細については、 https://developers.facebook.com/docs/Android/upgrading-4.x にアクセスしてください。
Facebookの依存関係を更新します
コンパイル 'com.facebook.Android:facebook-Android-sdk:4.8.0'
マニフェストファイルにアクセス許可が必要
<uses-permission Android:name="Android.permission.INTERNET"/>
<meta-data
Android:name="com.facebook.sdk.ApplicationName"
Android:value="@string/app_name" />
<meta-data
Android:name="com.facebook.sdk.ApplicationId"
Android:value="@string/facebook_app_id" />
<provider
Android:name="com.facebook.FacebookContentProvider"
Android:authorities="com.facebook.app.FacebookContentProvider1854328631556764"
Android:exported="true" />
その動作
詳細:-