2016-11-16 5 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 Webサイトの実装ガイドには、依存性のバージョン23.3.0があります。私はそれを25.0.1に変更しなければならなかった – Gonzalo

+0

互換性のないバージョンについては、gradleにも警告があります。 – Sirens

3

@ニックの答えに加えて、Facebook SDKのバージョンも更新しなければならず、クラッシュが発生しなくなりました。

+1

これは私のためだった。 4.16.1を使用していましたが、4.20.0にアップグレードして作業しました。 – mco

関連する問題