当前位置: 首页 > 知识库问答 >
问题:

Apache Cordova Facebook插件(最新版本/当前主版本)在初始化android应用程序时崩溃

公西鸿博
2023-03-14

我已经多次创建了Apache Cordova Facebook插件最新版本(当前主版本)中给出的示例应用程序:

https://github.com/phonegap/phonegap-facebook-plugin

目前,我只在Android上工作。

我第一次创建这个示例应用程序(大约两周前)时,一切都很好。我成功地用我的facebook账号登录,在我的墙上贴了一个状态,然后注销(所有其他操作都很好)。

但从那以后,我又多次创建了这个示例应用程序(以完全相同的方式),它再也没有工作过(我最后一次尝试是在今天)。在新应用程序(与第一个应用程序的代码完全相同,仍然有效)中,我按下“使用FACEBOOK登录”,我的应用程序会立即崩溃。有时应用程序不会立即崩溃,我可以得到“参数'会话'不能为空”的消息。然后我再次按下“使用FACEBOOK登录”,应用程序会崩溃。有时我可以在应用程序最终崩溃之前收到这条消息几次。如果我按下"LOGOUT with FACEBOOK",我得到的消息:"没有找到有效的会话,必须调用init和登录前注销"。

我也不认为问题在于我有一个错误的散列键或类似的东西,因为我每次都很小心facebook应用的设置。

我还相信我每次都正确安装了这个插件,因为我总是按照第一次安装的方式来安装,效果很好。

那么在我最近的尝试中,会话变量是NULL是怎么回事??为什么它只在第一次工作??我很沮丧...

编辑:

以下是LogCat日志的相关部分:

D/ConnectPlugin( 7064): login FB

W/dalvikvm( 7064): VFY: unable to resolve static field 2130 (com_facebook_internet_permission_error_title) in Lcom/facebook/android/R$string;

D/dalvikvm( 7064): VFY: replacing opcode 0x60 at 0x0010

I/dalvikvm( 7064): DexOpt: unable to optimize static field ref 0x0851 at 0x18 in Lcom/facebook/AuthorizationClient;.checkInternetPermission

W/dalvikvm( 7064): VFY: unable to resolve static field 2120 (com_facebook_login_activity_layout) in Lcom/facebook/android/R$layout;

D/dalvikvm( 7064): VFY: replacing opcode 0x60 at 0x0003

W/dalvikvm( 7064): VFY: unable to resolve static field 2103 (com_facebook_login_activity_progress_bar) in Lcom/facebook/android/R$id;

D/dalvikvm( 7064): VFY: replacing opcode 0x60 at 0x0008

I/ActivityManager( 2112): START {intent.toShortString} from pid 7064

I/power   ( 2112): *** acquire_dvfs_lock : lockType : 1  freq : 1000000 

D/PowerManagerService( 2112): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT  frequency : 1000000  uid : 1000  pid : 2112  tag : ActivityManager

W/ActivityManager( 2112): mDVFSLock.acquire()

D/dalvikvm( 7064): GC_CONCURRENT freed 455K, 6% free 12931K/13639K, paused 4ms+5ms

W/PluginManager( 7064): THREAD WARNING: exec() call to FacebookConnectPlugin.login blocked the main thread for 207ms. Plugin should use CordovaInterface.getThreadPool().

D/CordovaActivity( 7064): Paused the application!

D/CordovaWebView( 7064): Handle the pause

D/FirewallPolicy( 2112): getURLFilterEnabled(true)

D/FirewallPolicy( 2112): isUrlBlocked - Policy disabled

D/webkit  ( 7064): Firewall not null

D/FirewallPolicy( 2112): getURLFilterEnabled(true)

D/FirewallPolicy( 2112): isUrlBlocked - Policy disabled

I/ClipboardServiceEx( 2112): mCBPickerDialog enter case. MSG_DISMISS_DIALOG

D/webkit  ( 7064): euler: isUrlBlocked = false

D/FirewallPolicy( 2112): getURLFilterEnabled(true)

D/FirewallPolicy( 2112): isUrlBlocked - Policy disabled

D/ActivityManager( 2112): Trying to launch applicationName

D/KeyguardViewMediator( 2112): setHidden false

I/ClipboardServiceEx( 2112): mCBPickerDialog enter case. MSG_DISMISS_DIALOG

D/AndroidRuntime( 7064): Shutting down VM

W/dalvikvm( 7064): threadid=1: thread exiting with uncaught exception (group=0x40c6c1f8)

E/AndroidRuntime( 7064): FATAL EXCEPTION: main

E/AndroidRuntime( 7064): java.lang.NoClassDefFoundError: com.facebook.android.R$layout

E/AndroidRuntime( 7064):    at com.facebook.LoginActivity.onCreate(LoginActivity.java:57)

E/AndroidRuntime( 7064):    at android.app.Activity.performCreate(Activity.java:4562)

E/AndroidRuntime( 7064):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1053)

E/AndroidRuntime( 7064):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1934)

E/AndroidRuntime( 7064):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1995)

E/AndroidRuntime( 7064):    at android.app.ActivityThread.access$600(ActivityThread.java:128)

E/AndroidRuntime( 7064):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1161)

E/AndroidRuntime( 7064):    at android.os.Handler.dispatchMessage(Handler.java:99)

E/AndroidRuntime( 7064):    at android.os.Looper.loop(Looper.java:137)

E/AndroidRuntime( 7064):    at android.app.ActivityThread.main(ActivityThread.java:4514)

E/AndroidRuntime( 7064):    at java.lang.reflect.Method.invokeNative(Native Method)

E/AndroidRuntime( 7064):    at java.lang.reflect.Method.invoke(Method.java:511)

E/AndroidRuntime( 7064):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:993)

E/AndroidRuntime( 7064):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:760)

E/AndroidRuntime( 7064):    at dalvik.system.NativeStart.main(Native Method)

W/ActivityManager( 2112):   Force finishing activity com.yomama.test/com.facebook.LoginActivity

W/ActivityManager( 2112):   Force finishing activity com.yomama.test/.Test

昨天发生在我身上的另一件奇怪的事情是,我重新编译并(在手机上)重新安装了第一个工作的应用程序,但突然它也不工作了(我在按下“登录FACEBOOK”后收到了相同的消息,然后应用程序崩溃了)。然后我重新编译并重新安装了这个应用程序,它又正常工作了。奇怪的

共有1个答案

微生运浩
2023-03-14

尝试以下步骤(从这个GitHub问题开始;为我工作过):

+### Android Setup without Eclipse (just CLI)

+Follow the steps above:

cordova create myApp

cd myApp/

cordova platform add android

cordova -d plugin add https://github.com/phonegap/phonegap-facebook-plugin.git --variable APP_ID="123456789" --variable APP_NAME="myApplication"

// add FacebookLib

echo "android.library.reference.2=com.phonegap.plugins.facebookconnect/FacebookLib" >> platforms/android/project.properties

cp platforms/android/local.properties platforms/android/com.phonegap.plugins.facebookconnect/FacebookLib

android update project -p platforms/android/

cd platforms/android/

ant clean

cd com.phonegap.plugins.facebookconnect/FacebookLib

ant clean

open -e AndroidManifest.xml

// change your minSdkVersion and your targetSdkVersion to your environment settings.

ant release

cd ../../../..

cordova build android

With this steps you can add the Plugin without using Eclipse
 类似资料:
  • 我有一个应用程序崩溃的点:“New Downloader(this,mURL);”: 02-25 15:40:55.405 619-619/them.vertretungsplan e/androidruntime:致命异常:main java.lang.verifyerror:thems.vertretungsplan.downloader at thems.vertretungsplan.ve

  • 问题内容: 我刚刚将我的android SDK工具更新为新发布的版本(工具版本22,平台工具版本17) .classpath文件已修改。更新中添加了一行: 在SDK工具更新之前,我所有的项目都运行良好! 我以这种方式纠正了我的问题: 在项目属性(eclipse)中-> java build path-> order and export确保已检查libs文件夹中的所有jar。 和“ Android

  • 我试图弄清楚如何从Play商店强制更新最新版本。 由于我的android应用程序的旧版本已经在play store中,我还没有执行检查,以获取应用程序的当前版本,并与链接中指定的play store应用程序版本进行比较,请强制更新android应用程序 当我想上传新版本的代码时,他才可以使用新版本。 你能帮帮我吗?

  • 在我的应用程序内,我想检查是否有任何更新的版本,我的应用程序是在app Store。如果有,那么必须通过警告消息通知用户,如果他/她选择升级,我想更新新版本。我想通过我的应用程序完成所有这些。这可能吗?

  • 今天早上,我从谷歌的开发者控制台收到一封邮件,说我正在使用一个存在安全漏洞的OpenSSL版本。 实际上我只是在维护代码,我还没有开发它。但是,我应该解决这个问题。 我想知道如何在我的Android应用程序中将打开的SSL更新到最新的支持版本。 尝试了很多搜索,但没有如何在Android应用程序中执行此操作。 对于今天早上收到相同邮件的所有开发人员来说,这将是一个解决方案。 提前谢谢。

  • 我目前正试图在android studio中创建一个日历应用程序。该应用包含一个具有不同“视图”的日历,例如月视图、周视图和日视图。 该应用程序使用片段作为页面,每个视图都是一个活动。 这是片段和按钮初始化每个视图的代码 在代码中显示日历月度视图的第一个按钮称为“Calendaractive”正常工作,但当单击显示日历每周视图的第二个按钮时,会导致应用程序崩溃并在logcat中给出以下错误 我不确