2016-11-16 2 views
7

Android 애플리케이션에서 Chrome 맞춤 탭을 사용하려고합니다. 내 MainActivity 클래스는 AppCompatActivity까지 확장됩니다. onCreate에서 나는 startCustomTabs을 호출합니다.Android 앱에서 Chrome CustomTabsIntent를 시작할 수 없습니다.

11-16 10:55:38.561 30093-30093/com.nick.saavnextractor 
E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.nick.saavnextractor, PID: 30093 
    java.lang.NoSuchMethodError: No static method 
startActivity(Landroid/app/Activity;Landroid/content/Intent;Landroid/os/Bundle;)V 
in class Landroid/support/v4/app/ActivityCompat; or its super classes 
(declaration of 'android.support.v4.app.ActivityCompat' appears in 
/data/data/com.nick.saavnextractor/files/instant-run/dex/slice-com.android.support-support-compat-25.0.0_15c83dd4ec129d2d74bfda2e34f6aeeb93d83fa1-classes.dex) 
     at android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:262) 
     at com.nick.saavnextractor.MainActivity.startCustomTab(MainActivity.java:325) 
     at com.nick.saavnextractor.MainActivity.onCreate(MainActivity.java:111) 
     at android.app.Activity.performCreate(Activity.java:6311) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2409) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2539) 
     at android.app.ActivityThread.access$900(ActivityThread.java:159) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1384) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:148) 
     at android.app.ActivityThread.main(ActivityThread.java:5507) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 

참고 : 응용 프로그램 출시 되 자마자

private void startCustomTab(){ 
    CustomTabsIntent intent = new CustomTabsIntent.Builder().setToolbarColor(getResources().getColor(R.color.colorPrimary)).build(); 
    intent.launchUrl(this, Uri.parse("http://github.com/black-dragon/SaavnExtractor")); 
} 

이 오류를 다음과 같이 충돌 : 다음은 그의 코드는 나는 새로운에서 동일한 방법으로 동일한 코드를 실행하면 맞춤 탭이 잘 실행됩니다.

+0

사용중인 빌드 도구 버전은 무엇입니까? – jdandradex

+0

25.0.0 Android N – Nick

답변

11

좋아요, 그럼 여기에 해결책이 있습니다. 빌드 도구 버전 25.0.0을 사용했지만 SDK 플랫폼이 24였습니다.

빌드 도구 플랫폼 도구 & SDK를 동일한 버전으로 업데이트하면이 문제가 발생하지 않습니다.

+0

나를 위해 작동하지 않음 :/ – Gonzalo

+3

내 문제의 해결책을 찾았습니다. 컴파일 할 SDK 버전에 해당하는 종속성을 가져와야했습니다. Customtabs 웹 사이트의 구현 가이드에는 버전 23.3.0의 종속성이 있습니다. 나는 그것을 25.0.1로 변경해야했다. – Gonzalo

+0

호환되지 않는 버전을 가지고있는 것에 관한 gradle의 경고조차도, 이것을 놓쳤다는 것을 믿을 수 없다. – Sirens

3

@ Nick의 답변과 함께 Facebook SDK 버전을 업데이트해야하며 충돌이 발생하지 않았습니다.

+1

이것은 나를위한 것이었다. 4.16.1을 사용했지만 4.20.0으로 업그레이드하여 작동했습니다. – mco