【问题标题】:cordova-plugin-facebook4 Couldn't Make The App Start (Android)cordova-plugin-facebook4 无法启动应用程序 (Android)
【发布时间】:2019-02-12 11:55:10
【问题描述】:

我有一个现有的应用程序,这个插件运行良好,但今天它决定在我身上失败。

我可以肯定,下面很可能会重现该问题,一旦安装了插件,应用程序在运行“cordova run android”后会出现黑屏。终端显示“启动成功”,没有错误/堆栈跟踪。

版本:

  • cordova-plugin-facebook4: 2.4.0
  • 科尔多瓦:8.0.0
  • cordova-android: 7.0.0
  • Android Studio:3.1.4(适用于 Mac),带有 Android API 28

重现这个:

  1. 全新安装 Android Studio 和 cordova,接受来自 Android 的所有许可证,例如sdkmanager --licenses。确保该应用已在 developers.facebook.com 中注册并获得正确的 APP_ID。
  2. 终端:cordova create appy222 appy222.com appy222
  3. cd 进入 appy222
  4. cordova plugin add cordova-plugin-facebook4 --variable APP_ID="whateverid" --variable APP_NAME="Appy222"
  5. 将 xml 片段插入到 cordova-plugin-facebook4 的 plugin.xml <config-file parent="/resources" target="./res/values/strings.xml"> <string name="fb_app_id">$APP_ID</string> <string name="fb_app_name">$APP_NAME</string> </config-file>
  6. 将“android-minSdkVersion”更改为 16。原来是15,在做cordova run android时抱怨Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in library...
  7. cordova platform add android 这将安装cordova-android@7.0.0
  8. 通过连接到启用开发选项的 Android 手机运行。终端:cordova run android

结果是一个空白屏幕......黑色。没有cordova-plugin-facebook4,该应用程序将运行良好。

想知道是否有人遇到过这个问题?希望有人可以在这里分享一些想法。

【问题讨论】:

  • 科尔多瓦版本?科尔多瓦安卓版?除此之外,错误的堆栈跟踪是什么?
  • Cordova 版本在那里(8.0.0),cordovan-android 版本在那里(7.0.0)。根本没有堆栈跟踪。该应用程序以“LAUNCH SUCCESS”部署到移动设备。我想通过 chrome://inspect 检查错误,但它甚至没有条目。
  • 奇怪的是没有一个条目。您是否尝试添加一些 console.log 来跟踪正在发生的事情?
  • 不确定这是否有帮助,我启动了 adb logcat 并使用包名过滤日志。它给出:“ClassLoader 引用了未知路径:/data/app/appy2.com-2/lib/arm
  • 好的,找到了解决方案...天哪,必须将 Facebook 的 Android SDK 版本缩减到 4.28.0

标签: android cordova ionic-framework cordova-plugins


【解决方案1】:

Android build.gradle 找不到 $FACEBOOK_ANDROID_SDK_VERSION。 所以我在 ionic-cordova-facebook4 插件中改变了它。 您可以找到 root/plugins/cordova-plugin-facebook4/plugin.xml 文件。

您可以在此处找到此设置

请改成

终于 离子科尔多瓦平台rm android, 离子科尔多瓦平台添加android 离子科尔多瓦运行android 现在一切正常!

【讨论】:

  • 我们在哪里可以找到该设置?
  • 你可以找到这个目录。 root/plugins/codova-plugin-facebook4/plugin.xml.
【解决方案2】:

您需要将 Facebook Android SDK 版本降级到 4.26.0

ionic cordova 插件添加 cordova-plugin-facebook4 --variable APP_ID="app_id" --variable APP_NAME="app_name" --variable FACEBOOK_ANDROID_SDK_VERSION="4.26.0" --variable ANDROID_SDK_VERSION="4.26.0"

请记住设置变量 ANDROID_SDK_VERSION 和 FACEBOOK_ANDROID_SDK_VERSION 以避免冲突,因为某些版本的 cordova-plugin-facebook4 指的是变量 ANDROID_SDK_VERSION

记得删除并重新添加android平台。

【讨论】:

    【解决方案3】:

    发布我自己的问题/问题的答案。似乎我需要将 Facebook 的 Android SDK 版本一直降到 4.28.0(而不是目前的 4.36.0)。

    cordova plugin add cordova-plugin-facebook4 --variable APP_ID="whateverid" --variable APP_NAME="whateverappname" --variable ANDROID_SDK_VERSION="4.28.0"
    

    【讨论】:

      【解决方案4】:

      遇到了同样的问题。对我有用的是删除插件,将 facebook android sdk 版本设置为 4.35.0:

      cordova 插件添加 cordova-plugin-facebook4 --variable APP_ID="whateverid" --variable APP_NAME="Appy222" --variable ANDROID_SDK_VERSION="4.35.0"

      然后删除并读取android平台:

      cordova 平台 rm android

      cordova平台添加android

      【讨论】:

      • 我只是好奇如何获取正确的Android SDK版本号
      • 我的应用程序在更新到使用 SDK 4.36.0 的插件 2.4.0 的最新版本后开始失败。应用程序在 SDK 4.35.0 上的先前插件版本上运行良好,所以我恢复到那个。
      • 好的,找到了解决方案...天哪,必须将 Facebook 的 Android SDK 版本缩减到 4.28.0
      【解决方案5】:

      我也是。我得到了解决方案。它必须与 dev facebook 应用程序中的 Google Play 包名称和 config.xml 中的 wiget id 相同。

      【讨论】:

      • 在我的情况下不是...应用 ID 匹配。
      猜你喜欢
      • 2019-09-01
      • 2019-02-15
      • 2018-12-12
      • 2017-11-20
      • 1970-01-01
      • 2019-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多