无法将 'facebook' sdk 4.9.0 作为模块导入 android studio 1.2
Unable to import 'facebook' sdk 4.9.0 as module in android studio 1.2
我得到 'Specify location of the gradle or android eclipse project'。我遵循了以下步骤:
1) 在 app->build.gradle as
中添加了 mavenCentral 和依赖
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。使用 File->New 和 select facebook 文件夹下的 Import Module。在解压缩的旧版本中,我有这个:\facebook-android-sdk-4.9.0\facebook-android-sdk-4.9.0。它包含 AudienceNetwork 和 facebook 文件夹。在 facebook 文件夹中,我有以下文件:示例、facebook-android-sdk-4.9.0.aar、licence.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'
}
.别忘了同步
.此时最低 sdk 版本必须是 15
然后转到 https://developers.facebook.com/ 然后创建您的应用程序 ID 并将其粘贴到值中 >> trings.xml 也不要忘记创建您的应用程序密钥哈希。
在您的项目中创建以下 file: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);
}
}
像这样制作你的 SigninFragment :
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);
}
您的 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
必须在strings.xml中找到什么:
<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>
我的 signinFragment.xml 添加 facebook 按钮是这样的:
<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" />
我得到 'Specify location of the gradle or android eclipse project'。我遵循了以下步骤:
1) 在 app->build.gradle as
中添加了 mavenCentral 和依赖 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。使用 File->New 和 select facebook 文件夹下的 Import Module。在解压缩的旧版本中,我有这个:\facebook-android-sdk-4.9.0\facebook-android-sdk-4.9.0。它包含 AudienceNetwork 和 facebook 文件夹。在 facebook 文件夹中,我有以下文件:示例、facebook-android-sdk-4.9.0.aar、licence.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'
}
.别忘了同步 .此时最低 sdk 版本必须是 15 然后转到 https://developers.facebook.com/ 然后创建您的应用程序 ID 并将其粘贴到值中 >> trings.xml 也不要忘记创建您的应用程序密钥哈希。
在您的项目中创建以下 file: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);
}
}
像这样制作你的 SigninFragment :
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);
}
您的 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
必须在strings.xml中找到什么:
<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>
我的 signinFragment.xml 添加 facebook 按钮是这样的:
<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" />