无法导入';facebook';sdk 4.9.0作为android studio 1.2中的模块
我得到“指定gradle或android eclipse项目的位置”。我遵循以下步骤: 1) 在app->build.gradle中添加了mavenCentral和依赖项无法导入';facebook';sdk 4.9.0作为android studio 1.2中的模块,android,facebook-sdk-4.x,android-studio-import,Android,Facebook Sdk 4.x,Android Studio Import,我得到“指定gradle或android eclipse项目的位置”。我遵循以下步骤: 1) 在app->build.gradle中添加了mavenCentral和依赖项 apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "com.example.
apply plugin: 'com.android.application'
android {
compileSdkVersion 22
buildToolsVersion "22.0.1"
defaultConfig {
applicationId "com.example.akshitag.cooltrends"
minSdkVersion 15
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 'com.android.support:appcompat-v7:22.1.1'
compile 'com.facebook.android:facebook-android-sdk:4.+'
}
2) 建立一个成功的项目
3) 下载并解压缩facebook sdk。使用文件->新建下的导入模块并选择facebook文件夹。在unzipeed older中,我有:\facebook-android-sdk-4.9.0\facebook-android-sdk-4.9.0。它包含AudienceNet和facebook文件夹。在facebook文件夹中,我有以下文件:sample、facebook-android-sdk-4.9.0.aar、license.txt和notice.txt
另外,这就是我的项目结构
有人能带我到这里吗 您已经在gradle中编译了sdk,那么为什么要使用不同的方法再次添加它?您的项目已经完成,不需要将其作为单独的模块添加 您不需要在android studio中导入facebook SDK文件,只需转到您的应用程序模块gradle:build.gradle并粘贴即可
repositories {
mavenCentral()
}
dependencies {
compile 'com.android.support:support-v4:21.0.3'
compile 'com.facebook.android:facebook-android-sdk:4.8.0'
}
.别忘了同步
. 此时min sdk版本必须为15
然后转到创建应用程序id并将其粘贴到values>>trings.xml中。也不要忘记创建应用程序密钥哈希
在项目中创建以下文件:MyApplication.java
粘贴这些代码:
public class MyApplication extends Application {
// Updated your class body:
@Override
public void onCreate() {
super.onCreate();
// Initialize the SDK before executing any other operations,
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(this);
}
}
让你的家人像这样做:
public class SigninFragment extends Fragment {
CallbackManager callbackManager;
private LoginButton loginButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Other app specific specialization
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(getActivity());
callbackManager = CallbackManager.Factory.create();
// Initialize the SDK before executing any other operations,
View rootView = inflater.inflate(R.layout.signin_fragment, container, false);
loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
loginButton.setReadPermissions("email");
// If using in a fragment
loginButton.setFragment(this);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
}
});
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
<string name="facebook_app_id">here there is id number you get from facebook developpers</string>
<string name="fb_login_protocol_scheme">fbAPP_ID</string>
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="71dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
公共类SigninFragment扩展片段{
CallbackManager CallbackManager;
私人登录按钮登录按钮;
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
//其他特定于应用程序的专门化
sdkinInitialize(getApplicationContext());
activateApp(getActivity());
callbackManager=callbackManager.Factory.create();
//在执行任何其他操作之前初始化SDK,
视图根视图=充气机。充气(R.layout.signin_碎片,容器,假);
loginButton=(loginButton)rootView.findviewbyd(R.id.login_按钮);
loginButton.setReadPermissions(“电子邮件”);
//如果在片段中使用
setFragment(this);
registerCallback(callbackManager,newfacebookcallback()){
@凌驾
成功时公共无效(LoginResult LoginResult){
Toast.makeText(getApplicationContext(),“登录尝试成功”,Toast.LENGTH\u LONG.show();
}
@凌驾
公开作废{
Toast.makeText(getApplicationContext(),“登录尝试已取消”,Toast.LENGTH_LONG.show();
}
@凌驾
公共无效onError(FaceBook例外e){
Toast.makeText(getApplicationContext(),“登录尝试失败”,Toast.LENGTH_LONG.show();
}
});
返回rootView;
}
@凌驾
ActivityResult上的公共void(int请求代码、int结果代码、意图数据){
super.onActivityResult(请求代码、结果代码、数据);
callbackManager.onActivityResult(请求代码、结果代码、数据);
}
您的android清单必须是什么样子:
//facebook
<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"
android:exported="true"
>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="@string/fb_login_protocol_scheme" />
</intent-filter>
</activity>
<meta-data android:name="com.facebook.sdk.ApplicationId"
android:value="@string/facebook_app_id"/>
//end facebook
//facebook
//结束facebook
必须在strings.xml中找到的内容:
public class SigninFragment extends Fragment {
CallbackManager callbackManager;
private LoginButton loginButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Other app specific specialization
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(getActivity());
callbackManager = CallbackManager.Factory.create();
// Initialize the SDK before executing any other operations,
View rootView = inflater.inflate(R.layout.signin_fragment, container, false);
loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
loginButton.setReadPermissions("email");
// If using in a fragment
loginButton.setFragment(this);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
}
});
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
<string name="facebook_app_id">here there is id number you get from facebook developpers</string>
<string name="fb_login_protocol_scheme">fbAPP_ID</string>
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="71dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
这是您从facebook开发者那里获得的id号
fbAPP_ID
I您的signinFragment.xml添加facebook按钮如下:
public class SigninFragment extends Fragment {
CallbackManager callbackManager;
private LoginButton loginButton;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Other app specific specialization
FacebookSdk.sdkInitialize(getApplicationContext());
AppEventsLogger.activateApp(getActivity());
callbackManager = CallbackManager.Factory.create();
// Initialize the SDK before executing any other operations,
View rootView = inflater.inflate(R.layout.signin_fragment, container, false);
loginButton = (LoginButton)rootView.findViewById(R.id.login_button);
loginButton.setReadPermissions("email");
// If using in a fragment
loginButton.setFragment(this);
loginButton.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Toast.makeText(getApplicationContext(), "Login attempt succes.",Toast.LENGTH_LONG).show();
}
@Override
public void onCancel() {
Toast.makeText(getApplicationContext(), "Login attempt cancelled.",Toast.LENGTH_LONG).show();
}
@Override
public void onError(FacebookException e) {
Toast.makeText(getApplicationContext(), "Login attempt failed.",Toast.LENGTH_LONG).show();
}
});
return rootView;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
<string name="facebook_app_id">here there is id number you get from facebook developpers</string>
<string name="fb_login_protocol_scheme">fbAPP_ID</string>
<com.facebook.login.widget.LoginButton
android:id="@+id/login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="71dp"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true" />
检查此项目中包含的4.6对fb的依赖关系。@RobertRowntree感谢您的回复。我添加了这一个compile'com.parse:parsefacebookutils-v4-android:1.10。3@aar我仍然无法导入模块。这似乎是parseUI的库。是的,我正要回答相同的问题,但谢谢@Zeus25。