java.lang.NoSuchMethodError: android.support.v4.app.ActivityCompat.startActivity

java.lang.NoSuchMethodError: android.support.v4.app.ActivityCompat.startActivity

我用 facebook 创建了一个登录应用程序。当我单击登录按钮时,它显示此错误。

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.myapp.test, PID: 16970
                  java.lang.NoSuchMethodError: android.support.v4.app.ActivityCompat.startActivity
                      at android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:200)
                      at com.facebook.internal.CustomTab.openCustomTab(CustomTab.java:48)
                      at com.facebook.CustomTabMainActivity.onCreate(CustomTabMainActivity.java:67)
                      at android.app.Activity.performCreate(Activity.java:5299)
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
                      at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2151)
                      at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2236)
                      at android.app.ActivityThread.access0(ActivityThread.java:138)
                      at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1199)
                      at android.os.Handler.dispatchMessage(Handler.java:102)
                      at android.os.Looper.loop(Looper.java:136)
                      at android.app.ActivityThread.main(ActivityThread.java:5061)
                      at java.lang.reflect.Method.invokeNative(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:515)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:787)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:603)
                      at dalvik.system.NativeStart.main(Native Method)

我检查了 build.gradle 中的依赖项,我有 AppCompat 库

compile 'com.android.support:appcompat-v7:25.0.1'

我认为是最新的。

有人见过这个吗?请帮忙。

我读过这个:没帮助。

在您的堆栈跟踪中,您似乎正在使用导入了 v7 ActivityCompat 的 v4 ActivityCompat。尝试检查要启动的 ActivityCompat class 中的导入,并确保您使用的是正确的版本(7,而不是 4)。

不知道它是否对您有帮助,但就我而言(我的应用程序中有 Facebook SDK custom tabs enabled)当用户(未安装 Facebook 应用程序)尝试登录时发生此错误。

Exception java.lang.NoSuchMethodError: No virtual method launchUrl(Landroid/app/Activity;Landroid/net/Uri;)V in class Landroid/support/customtabs/CustomTabsIntent; or its super classes 
com.facebook.internal.CustomTab.openCustomTab (CustomTab.java:48)

正在更新依赖以使用最新的 SDK 版本(他们在 4.17.0 版本中切换到 customtabs:25.0.0)

compile 'com.facebook.android:facebook-android-sdk:4.17.0'

解决了问题。

我还在我的应用程序中使用自定义选项卡 (v25.0.0),并且没有遇到任何问题。如果不是你的情况 you can check what they've changed.

Answer by mat

使用

compile 'com.facebook.android:facebook-android-sdk:4.20.0'
compile 'com.android.support:customtabs:25.2.0'

帮我解决了问题