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

时间:2016-12-16 07:49:07

标签: android android-support-library android-appcompat

我用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.access$800(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库

  

编译'com.android.support:appcompat-v7:25.0.1'

我认为这是最新的。

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

我读过这个:https://stackoverflow.com/a/39300065/5241603没有帮助。

3 个答案:

答案 0 :(得分:4)

不知道它是否对您有所帮助,但在我的情况下(我的应用程序中有custom tabs enabled的Facebook SDK)当用户(未安装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版本(他们切换到customtabs:版本4.17.0中的25.0.0)

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

修复了问题。

我也在我的应用中使用自定义标签(v25.0.0)并且没有任何问题。如果不是你的情况you can check what they've changed

Answer

mat

答案 1 :(得分:1)

使用

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

解决了我的问题

答案 2 :(得分:0)

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