根据https://developers.facebook.com/docs/android/getting-started/facebook-sdk-for-android/上发布的教程,我无法在我的Android应用程序中打开活动的facebook会话
现在我已经挣扎了很长一段时间没有运气!如果你们中的一个人能指出我正确的方向,我将很高兴!(我打赌这个错误是我身边的一些设置,但我无法发现它)
这是我在调用Session.openActiveSession后看到的错误(在我的活动的onCreate中这是真的,新的Session.StatusCallback()(我几乎遵循facevook开发人员教程中给出的步骤)
编辑: 首先记录以下警告消息,然后在随后的屏幕截图中显示错误消息
09-03 19:26:22.726:W/Bundle(17458):键 com.facebook.platform.protocol.PROTOCOL_VERSION期望String但值是java.lang.Integer.返回了默认值. 09-03 19:26:22.736:W/Bundle(17458):尝试转换生成的内部异常:09-03 19:26:22.736:W/Bundle(17458):java.lang.ClassCastException:java.lang.Integer不能强制转换为java.lang.String 09-03 19:26:22.736:W/Bundle(17458):at android.os.Bundle.getString(Bundle.java:1061)09-03 19:26:22.736:W/Bundle(17458):在android.content.Intent.getStringExtra(Intent.java:4466)09-03 19:26:22.736:W/Bundle(17458):at com.facebook.AuthorizationClient $ KatanaLoginDialogAuthHandler.tryAuthorize(AuthorizationClient. java:821)09-03 19:26:22.736:W/Bundle(17458):at com.facebook.AuthorizationClient.tryCurrentHandler(AuthorizationClient.java:272)

09-02 22:55:04.110:E/AndroidRuntime(13287):FATAL EXCEPTION:main 09-02 22:55:04.110:E/AndroidRuntime(13287):java.lang.RuntimeException:无法恢复活动 {com.good .amrfbintegration/com.facebook.LoginActivity }: java.lang.NullPointerException 09-02 22:55:04.110:E/AndroidRuntime(13287):at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3036)09-02 22 :55:04.110:E/AndroidRuntime(13287):在android.app.ActivityThread.handleResumeActivity(ActivityThread.java:3077)09-02 22:55:04.110:E/AndroidRuntime(13287):在android.app.ActivityThread. handleLaunchActivity(ActivityThread.java:2373)

这是我到目前为止所做的
使用以下信息在Facebook上更新了应用程序(我使用了使用我机器的调试密钥库生成的哈希键)

以下是我的清单文件中的相关信息(@ string/app_id是来自facebook开发门户的应用程序ID)

我以这种方式向我的项目添加了对Facebook SDK的引用

这是主要活动的OnCreate方法中的代码
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
activity = this;
Session.openActiveSession(this, true, new Session.StatusCallback()
{
@Override
public void call(Session session, SessionState state, Exception exception)
{
if (session.isOpened())
{ …Run Code Online (Sandbox Code Playgroud) 我使用facebook-android-sdk:4.20.+和com.android.support它们与错误信息冲突的库:
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 25.2.0, 25.0.0. Examples include com.android.support:animated-vector-drawable:25.2.0 and com.android.support:customtabs:25.0.0 less... (?F1)
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion.)
Run Code Online (Sandbox Code Playgroud)
以下是我的依赖项. …
android facebook gradle android-facebook android-gradle-plugin
当我发现 Android 上的 Facebook 应用程序显然能够在未经许可的情况下安装 Facebook Messenger 应用程序时,我感到非常惊讶。

我知道可以通过另一个应用程序安装应用程序,但用户需要通过系统对话框确认安装。除此之外,在较新的 Android 版本上,用户需要向尝试发出安装请求的应用授予“从未知来源安装”的权限。
然而,我没有授予 Facebook 任何安装权限,也没有系统级别的对话框要求我确认安装。我还确保之前尚未安装 Messenger。
我使用的是运行 Android 10 (Miui 12) 的 Poco F2 Pro。我在不同的设备上观察到相同的行为。Facebook在这里使用了什么样的魔法?
我正面临着android studio的一个奇怪问题.我有两个Android应用程序使用facebook sdk与相同的Facebook应用程序登录和分享图片.使用新的api,有必要声明内部清单:
<provider android:authorities="com.facebook.app.FacebookContentProvider[app_id]"
android:name="com.facebook.FacebookContentProvider"
android:exported="true"/>
Run Code Online (Sandbox Code Playgroud)
现在如果其中一个应用程序已经安装在设备上并且我尝试安装第二个应用程序,我在Android studio上获得此错误:
INSTALL_FAILED_CONFLICTING_PROVIDER
Run Code Online (Sandbox Code Playgroud)
这是facebook提供商的问题,这是我的应用程序中唯一的元素.那么,这样我的两个应用程序无法在同一台设备上同时安装?我想如果有一种方法可以使用相同的提供程序并避免该错误.
android facebook android-manifest android-facebook android-studio
我在Crashlytics看到了这个目前正在制作的应用程序的崩溃:
Caused by android.os.BadParcelableException: ClassNotFoundException when unmarshalling: com.facebook.flatbuffers.helpers.FlatBufferModelHelper$LazyHolder
at android.os.Parcel.readParcelableCreator(Parcel.java:2295)
at android.os.Parcel.readParcelable(Parcel.java:2245)
at android.os.Parcel.readValue(Parcel.java:2152)
at android.os.Parcel.readArrayMapInternal(Parcel.java:2485)
at android.os.BaseBundle.unparcel(BaseBundle.java:221)
at android.os.BaseBundle.containsKey(BaseBundle.java:269)
at android.content.Intent.hasExtra(Intent.java:5632)
...
Run Code Online (Sandbox Code Playgroud)
我真的不确定导致这个问题的原因.我甚至找不到facebook-android-sdk中的FlatBufferModelHelper课程.
不幸的是,我真的没有比这更多的信息了.此崩溃似乎会影响所有API级别的所有设备.
感谢您的任何信息!
我正在尝试将facebook SDK添加到android项目,但我无法添加它,我无法做到.我的项目有一个包,其中有8-10个包,那么我可以在哪里添加facebook SDK?
我在网上搜索了很多,但找不到好的解决方案.
我正在开发一个Android应用程序,它是一个图像库,其中的图像从互联网下载,以显示在smathphone的屏幕上.图像一次显示一个,应用程序有一个按钮来共享显示的图像.
根据我在一些StackOverflow帖子中发现的指示,该帖子表明共享图像的正确方法是使用ContentProvider我实现了以下代码,用于共享某些应用程序的图像(例如Twitter,Gmail ...)但对其他人不起作用(Facebook,Yahoo,MMS ......).
然后我展示了使用的代码,希望你能帮助我获得正确的实现,以在所有应用程序中共享图像.
最初我抓住按钮按下来分享:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == R.id.menu_share) {
// I get the image being displayed on the screen
View root = getView();
ImageView imageView = (ImageView) root.findViewById(R.id.image);
Drawable imageToShareDrawable = imageView.getDrawable();
if (imageToShareDrawable instanceof BitmapDrawable) {
// I convert the image to Bitmap
Bitmap imageToShare = ((BitmapDrawable) imageToShareDrawable).getBitmap();
// Name of de image extracted from a bean property
String fileName = quote.getImage();
// I keep the image in the folder "files" …Run Code Online (Sandbox Code Playgroud) 我正在使用android.I已将facebook sdk集成到我的app.Now facebbok sdk显示错误"Applink无法解决".如何解决这个问题.请帮助我我是新手android
我能够获得所有这些内容,如下面的代码所示,但无法从用户配置文件中检索电子邮件.
我能为此做些什么?
任何形式的帮助将不胜感激.
早些时候我使用这个来源获取Facebook用户的详细信息并且正在获取数据(包括电子邮件)而没有任何麻烦:
public class MainActivity extends Activity {
private Session.StatusCallback sessionStatusCallback;
private Session currentSession;
private Button login;
private Button logout;
private Button publishButton;
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
textView = (TextView) findViewById(R.id.textView);
// create instace for sessionStatusCallback
sessionStatusCallback = new Session.StatusCallback() {
@Override
public void call(Session session, SessionState state,
Exception exception) {
onSessionStateChange(session, state, exception);
}
};
login = (Button) findViewById(R.id.loginButton);
login.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
connectToFB();
} …Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我使用facebook SDK来执行登录和注册方法.
当我使用普通的FaceBook应用程序或在我的设备上使用普通的网络浏览器时,这没关系.
但是当我在我的设备上安装FaceBook Lite并且我没有通用的FaceBook应用程序时,当我尝试使用facebook-sdk登录/注册时,应用程序关闭时没有任何日志/消息,所以我不知道为什么这个问题发生了.
我该如何解决这个问题?- 我可以跳过FaceBook Lite应用程序并使用浏览器吗?
更新:
这是一个视频,如果我有正常的Facebook应用程序,没有问题.
这是一个视频,如果我在我的设备上有脸书app lite,这会使它崩溃.
我的代码片段:
LoginManager.getInstance()
.logInWithReadPermissions(getActivity(), Arrays.asList("public_profile"));
LoginManager.getInstance()
.registerCallback(callbackManager, new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(final LoginResult loginResult) {
Log.i("MainActivity", "@@@onSuccess");
GraphRequest request = GraphRequest
.newMeRequest(loginResult.getAccessToken(),
(object, response) -> {
Log.i("MainActivity",
"@@@response: " + response.toString());
try {
///
} catch (JSONException e) {
////
}
});
}
@Override
public void onCancel() {
Log.i("MainActivity", "@@@onCancel");
}
@Override
public void onError(FacebookException error) {
Log.i("MainActivity", …Run Code Online (Sandbox Code Playgroud)