是否可以从AndroidManifest.xml访问BuildConfig值?
在我的build.gradle文件中,我有:
defaultConfig {
applicationId "com.compagny.product"
minSdkVersion 16
targetSdkVersion 21
versionCode 1
versionName "1.0"
// Facebook app id
buildConfigField "long", "FACEBOOK_APP_ID", FACEBOOK_APP_ID
}
Run Code Online (Sandbox Code Playgroud)
FACEBOOK_APP_ID 在我的gradle.properties文件中定义:
# Facebook identifier (app ID)
FACEBOOK_APP_ID=XXXXXXXXXX
Run Code Online (Sandbox Code Playgroud)
要在我的应用中使用Facebook连接,我必须将此行添加到我的AndroidManifest.xml:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="@string/applicationId"/>
Run Code Online (Sandbox Code Playgroud)
我想用gradle中定义@string/applicationId的BuildConfig字段FACEBOOK_APP_ID替换,如下所示:
<meta-data android:name="com.facebook.sdk.ApplicationId" android:value="FACEBOOK_APP_ID"/>
Run Code Online (Sandbox Code Playgroud)
使用BuildConfig可以吗?如果没有,我怎么能实现这个目标?
我想自定义Facebook登录按钮的外观,我们与Facebook sdk for android(facebook-android-sdk-3.0.1)相处.我想要一个简单的android按钮,其标题为"通过Facebook登录".我找不到任何关于这方面的文件.
因此,如果有人知道如何以简单的方式做到这一点,请告诉我或指导我如何做到这一点.
嘿,我知道以前曾经问过,但没有一个解决方案似乎有所帮助.我在我的应用程序中首次使用Facebook SDK.
我尝试过的:
我曾尝试过在互联网上发现的大部分内容,但没有得到任何关于此的内容.
这是我的MainActivity.java:
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FacebookSdk.sdkInitialize(getApplicationContext());
}
}
Run Code Online (Sandbox Code Playgroud)
这是My Activitymain.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:facebook="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.facebook.login.widget.LoginButton
android:id="@+id/connectWithFbButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center_horizontal"
android:text=" connect_with_facebook" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
看我的Logcat:
05-13 16:30:39.332: E/AndroidRuntime(10264): Caused by: The SDK has not been initialized, make sure to call FacebookSdk.sdkInitialize() first.
Run Code Online (Sandbox Code Playgroud) 我正在尝试将Facebook集成到我的Android应用程序中.使用Facebook登录按钮,我尝试登录.当我第一次安装应用程序时,它工作正常并成功登录.当我使用该按钮注销,然后再次尝试登录时,它会显示权限对话框,但SessionState返回状态已关闭.有什么建议?这是我的代码
public class LoginActivity extends FragmentActivity{
// private Login login;
private boolean isResumed = false;
private BirthDayComp app;
private int Login=0;
private int LogOut=1;
private int Count=LogOut+1;
private boolean loged= false;
private Fragment[] fragments = new Fragment[Count];
private UiLifecycleHelper uiHelper;
private Session.StatusCallback callback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state, Exception exception) {
onSessionStateChange(session, state, exception);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_fragment);
uiHelper = new UiLifecycleHelper(this, callback);
uiHelper.onCreate(savedInstanceState);
FragmentManager fm …Run Code Online (Sandbox Code Playgroud) android facebook facebook-graph-api facebook-android-sdk android-facebook
我刚刚使用他们的SDK结合使用Facebook实现了登录ParseFacebookUtilsV4.
在我的清单中FacebookActivity,当我尝试登录时,我必须声明一个启动,这很有效.
<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" />
Run Code Online (Sandbox Code Playgroud)
这个片段来自官方文档,所以我没有选择任何东西.我发现它的造型真的很奇怪.在我的模拟器(API 22)上它有一个似乎来自90年代的ProgressBar!有没有办法造型呢?我尝试过更改android:theme属性,但没有成功.

我想扩展com.facebook.FacebookActivity,但在挖掘源代码后我发现它膨胀了一个com.facebook.LoginFragment,然后实际上负责进度条.有任何想法吗?
我正在使用Facebook App Events跟踪Android,但我不知道如何在用户想要退出时禁用跟踪!有谁知道这是怎么做到的吗?
文件说:
我们建议您使用我们的SDK工具提供退出选项.
但他们实际上并没有在任何地方描述它.经典Facebook移动.
编辑:现在GDPR生效了很长时间,他们仍然没有办法禁用所有跟踪,直到用户同意,是吗?
我的xml看起来像这样
<com.facebook.login.widget.LoginButton xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fb_login_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:paddingLeft="15dp"
android:paddingRight="15dp"
android:text="CONNECT WITH FACEBOOK"
android:textColor="@color/white"
android:textSize="20sp"
android:textStyle="bold"
android:background="@drawable/button_fb_login"/>
Run Code Online (Sandbox Code Playgroud)
和背景drawble xml是
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#4e69a2" />
<stroke android:width="3dip" android:color="#4e69a2" />
<padding android:bottom="0dip" android:left="0dip" android:right="0dip" android:top="0dip" />
</shape>
</item>
<item>
<shape>
<solid android:color="#3b5998" />
<stroke android:width="3dip" android:color="#3b5998" />
<padding android:bottom="0dip" android:left="0dip" android:right="0dip" android:top="0dip" />
</shape>
</item>
Run Code Online (Sandbox Code Playgroud)
现在在android studio预览屏幕中,它按预期显示.

但是当我在手机或模拟器上运行它时,默认显示"登录FACEBOOK",就像这样

如何在运行应用程序时获取自定义文本?
android facebook-graph-api facebook-android-sdk facebook-login android-facebook
当我在Facebook页面上分享时,收到以下错误:
(#100)只有URL的所有者才能指定图片,名称,缩略图或描述参数.
它在5-10天前工作正常.搜索时我在Facebook开发者网站链接上找到了以下内容:
"自2017年11月7日起,链接自定义可用,但链接必须由发布页面拥有,并且需要页面访问令牌.要验证所有权,请检查URL节点上的ownership_permissions {can_customize_link_posts}字段.请参阅我们的链接所有权有关详细信息的指南.对于版本2.10及更低版本,不推荐使用图片,名称,缩略图和说明.不建议使用所有版本的标题."
任何帮助,将不胜感激!
ShareLinkContent content = new ShareLinkContent.Builder()
.setContentUrl(Uri.parse(shareUrl))
.build();
new ShareApi(content).share(new FacebookCallback<Sharer.Result>() {
@Override
public void onSuccess(Sharer.Result result) {
shareCallback.onSuccess(result);
}
@Override
public void onCancel() {
shareCallback.onCancel();
}
@Override
public void onError(FacebookException error) {
shareCallback.onError(error);
}
});
Run Code Online (Sandbox Code Playgroud) android facebook-sharer facebook-android-sdk android-facebook
在你们都说不可能之前,打开Spotify应用程序并用Facebook按钮点击登录.
我想知道他们是如何做到的,以及如何在一个请求中获得"publish_stream"和基本权限/电子邮件.
另外,如果我从上次会话中获得某些信息(他们上次使用该应用程序时),我是否可以使用Facebook SDK重新开启Facebook会话?
编辑 -SCREENSHOTS以下为音乐AVERT

我的应用程序使用facebook api进行用户登录.在开发它工作正常,但当我上传到谷歌播放它停止工作.
这是错误日志:
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): Exception during service
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): com.facebook.http.protocol.ApiException: Key hash XXXXXXX does not match any stored key hashes.
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseChecker.b(ApiResponseChecker.java:83)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseChecker.a(ApiResponseChecker.java:162)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponse.g(ApiResponse.java:239)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:272)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.katana.server.protocol.AuthorizeAppMethod.a(AuthorizeAppMethod.java:29)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseHandler.a(ApiResponseHandler.java:56)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.protocol.ApiResponseHandler.handleResponse(ApiResponseHandler.java:29)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:280)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:141)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.b(FbHttpRequestProcessor.java:103)
12-10 20:20:02.488: W/fb4a(:<default>):BlueServiceQueue(17284): at com.facebook.http.common.FbHttpRequestProcessor.a(FbHttpRequestProcessor.java:196)
12-10 20:20:02.488: …Run Code Online (Sandbox Code Playgroud)