java - 在 Android 上初始化 Facebook SDK 时未找到类 com.facebook.FacebookActivity

标签 java android facebook

我们正在尝试将 Facebook SDK 集成到我们的项目中。我们没有(也不会)使用 Android Studio。 Facebook SDK 以 .AAR 文件形式提供(专用于 Android Studio)。为了能够使用它,因为它是一个简单的 .ZIP 文件,我们已经提取了所需的文件(classes.jar、资源)。

遵循文档:

  • 我们修改了 AndroidManifest.xml 以添加元数据、Facebook Activity 。

  • 我们修改了 strings.xml 以添加字符串......

  • 在我们的project.properties中,我们已将目标修改为android-21,以便可以编译资源

  • 我们没有使用 proguard

然后:

  • 编译已完成,没有错误

  • 当调用 FacebookSdk.sdkInitialise(....) 时,我们遇到了锁定,并且在日志中收到以下错误:

    10-03 15:20:42.071: I/art(8735): Rejecting re-init on previously-failed class java.lang.Class<com.facebook.FacebookActivity>
    10-03 15:20:42.071: I/art(8735): Rejecting re-init on previously-failed class java.lang.Class<com.facebook.FacebookActivity>
    
    09-30 11:18:02.832: I/ActivityManager(776): Start proc 8618:com.mycompname.mygame/u0a699 for activity com.mycompname.mygame/.MyGameActivity
    09-30 11:18:02.953: E/AndroidRuntime(8618): FATAL EXCEPTION: main
    09-30 11:18:02.953: E/AndroidRuntime(8618): Process: com.mycompname.mygame, PID: 8618
    09-30 11:18:02.953: E/AndroidRuntime(8618): java.lang.NoClassDefFoundError: Failed resolution of: Lcom/facebook/FacebookActivity;
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.facebook.internal.Validate.hasFacebookActivity(Validate.java:192)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:198)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.facebook.FacebookSdk.sdkInitialize(FacebookSdk.java:174)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.mycompname.mygame.MyGameActivityExtension.onMyGameActivityCreate(MyGameActivityExtension.java:36)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.mycompname.mygame.MyGameActivity.onCreate(MyGameActivity.java:641)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.Activity.performCreate(Activity.java:5990)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.ActivityThread.access$800(ActivityThread.java:151)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.os.Handler.dispatchMessage(Handler.java:102)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.os.Looper.loop(Looper.java:135)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at android.app.ActivityThread.main(ActivityThread.java:5254)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at java.lang.reflect.Method.invoke(Native Method)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at java.lang.reflect.Method.invoke(Method.java:372)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
    09-30 11:18:02.953: E/AndroidRuntime(8618): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.facebook.FacebookActivity" on path: DexPathList[[zip file "/data/app/com.mycompname.mygame-1/base.apk"],nativeLibraryDirectories=[/data/app/com.mycompname.mygame-1/lib/arm, /vendor/lib, /system/lib]]
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    09-30 11:18:02.953: E/AndroidRuntime(8618):   ... 18 more
    09-30 11:18:02.953: E/AndroidRuntime(8618):   Suppressed: java.lang.NoClassDefFoundError: com.facebook.FacebookActivity
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at dalvik.system.DexFile.defineClassNative(Native Method)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at dalvik.system.DexFile.defineClass(DexFile.java:226)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:219)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at dalvik.system.DexPathList.findClass(DexPathList.java:321)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  ... 20 more
    09-30 11:18:02.953: E/AndroidRuntime(8618):   Suppressed: java.lang.ClassNotFoundException: com.facebook.FacebookActivity
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at java.lang.Class.classForName(Native Method)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
    09-30 11:18:02.953: E/AndroidRuntime(8618):                  ... 19 more
    09-30 11:18:02.953: E/AndroidRuntime(8618):   Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
    

有人知道发生了什么事吗?

最佳答案

据我所知,com.facebook.FacebookActivity 现在不是 facebook sdk 的一部分。

看起来他们开始合并 list 文件(或者不再需要任何 Activity )

您可以降级库版本或从 list 文件中删除com.facebook.FacebookActivity。 但在这种情况下请确保正确的 list 合并

关于java - 在 Android 上初始化 Facebook SDK 时未找到类 com.facebook.FacebookActivity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39834143/

相关文章:

android - 在哪里可以找到旧版本的 Eclipse ADT

java - 集成 Facebook 登录时 key 哈希无效

java - 创建 StanleyCoreNLP 对象时出现错误 - "java.lang.NoClassDefFoundError"

java - JAXB 编码与 XSD 模式生成 - "desynchronize"it

java - 像后台进程命令行一样从 Wildfly 运行standalone.bat?

java - 如果我退出有计时器的 Activity ,就会将其关闭

java - 为什么 'headlines.add(xpp.nextText());' 给我一个错误?

javascript - Webview 无法在 android L 设备中加载 JavaScript Alert

android - 使用 Jabber ID 的 Facebook 连接

facebook-unity-sdk 无法在 iOS 上运行 (facebook-unity-sdk)