簡體   English   中英

Chrome CustomTab錯誤:java.lang.NoSuchMethodError:沒有靜態方法startActivity

[英]Chrome CustomTab error: java.lang.NoSuchMethodError: No static method startActivity

我正在嘗試使用chrome自定義標簽將fitbit與我的應用連接起來。 但我得到了以下錯誤。

java.lang.NoSuchMethodError:沒有靜態方法startActivity(Landroid / app / Activity; Landroid / content / Intent; Landroid / os / Bundle;)類Landroid / support / v4 / app / ActivityCompat中的V; 或其超級類('android.support.v4.app.ActivityCompat'的聲明出現在/data/data/com.life.myApp.app/files/instant-run/dex/slice-com.android.support-support -compat-25.0.1_a32c44837a06d33159cc113605aa7f1cb8d56675-classes.dex)位於com.life.myApp.app.ThirdPartyLibrary.TrackersDevies.FitBitTracker.LoginFitTrackers.onActivityCreated(LoginFitTrackers.java)的android.support.customtabs.CustomTabsIntent.launchUrl(CustomTabsIntent.java:200) :208)在android.app.Fragment.performActivityCreated(Fragment.java:2289)android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1008)android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1164)at android .app.BackStackRecord.run(BackStackRecord.java:793)位於android.app.Handler的android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1557)android.app.FragmentManagerImpl $ 1.run(FragmentManager.java:488) .handleCallback(Handler.java:739)位於androi的android.os.Handler.dispatchMessage(Handler.java:95) d.os.Looper.loop(Looper.java:148)位於com.android.internal的java.lang.reflect.Method.invoke(Native Method)的android.app.ActivityThread.main(ActivityThread.java:7223)。 os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1230)at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120)

這是我的gradle文件

buildscript {
repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
android {
compileSdkVersion 24
buildToolsVersion '24.0.1'

dexOptions {
    javaMaxHeapSize "4g"
    incremental = true;

}

defaultConfig {
    applicationId "com.life.myApp.app"
    minSdkVersion 16
    targetSdkVersion 24
    versionCode 20
    versionName "1.1.0.15"
    multiDexEnabled true
}
compileOptions {
    sourceCompatibility = JavaVersion.VERSION_1_7
    targetCompatibility = JavaVersion.VERSION_1_7
}
buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
allprojects {
    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:deprecation"
    }
}
}

repositories {
maven { url 'https://maven.fabric.io/public' }
}


dependencies {
compile 'com.android.support:customtabs:24.2.1'
compile 'com.android.support:appcompat-v7:24.2.1'
compile 'com.android.support:design:24.2.1'
compile 'com.android.support:support-v4:24.2.1'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services-analytics:9.6.1'
compile 'com.adjust.sdk:adjust-android:4.7.0'
compile 'com.segment.analytics.android:analytics:4.2.0'
compile('com.crashlytics.sdk.android:crashlytics:2.6.5@aar') {
    transitive = true;
}
compile 'oauth.signpost:signpost-core:1.2.1.2'
compile 'oauth.signpost:signpost-commonshttp4:1.2.1.2'
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.android.gms:play-services-fitness:9.6.1'
compile 'com.google.android.gms:play-services-auth:9.6.1'
compile 'com.google.code.gson:gson:2.7'
compile 'com.android.support:cardview-v7:24.2.1'
compile 'com.mcxiaoke.volley:library-aar:1.0.0'
compile 'com.liulishuo.magicprogresswidget:library:1.0.9'
compile 'com.wdullaer:materialdatetimepicker:3.0.0'

}

configurations {
compile.exclude group: "org.apache.httpcomponents", module: "httpclient"
}
/*
android {
useLibrary 'org.apache.http.legacy'
}*/

這是我的java代碼。

speedUpChromeTabs();
        weakReference = new WeakReference<Activity>(getActivity());

        CustomTabsClient.bindCustomTabsService(getActivity().getApplicationContext(), CUSTOM_TAB_PACKAGE_NAME, mCustomTabsServiceConnection);
        customTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession)
                .setToolbarColor(ContextCompat.getColor(getActivity(), R.color.blue))
                .setShowTitle(true)
                .build();
     url = url + "?time=" + (new Date().getTime());
                customTabsIntent.launchUrl(getActivity(), Uri.parse("http://www.google.com"));

我已經嘗試過ThisThisThis但到目前為止還沒有成功。

我在我的應用程序中更新了該代碼並且工作正常。因為文檔說23版本並且它拋出了這個錯誤。

mCustomTabsServiceConnection = new CustomTabsServiceConnection() {
            @Override
            public void onCustomTabsServiceConnected(ComponentName componentName, CustomTabsClient customTabsClient) {
                mCustomTabsClient= customTabsClient;
                mCustomTabsClient.warmup(0L);
                mCustomTabsSession = mCustomTabsClient.newSession(null);
            }

            @Override
            public void onServiceDisconnected(ComponentName name) {
                mCustomTabsClient= null;
            }
        };

        CustomTabsClient.bindCustomTabsService(getActivity(), CUSTOM_TAB_PACKAGE_NAME, mCustomTabsServiceConnection);

        mCustomTabsIntent = new CustomTabsIntent.Builder(mCustomTabsSession)
                .setShowTitle(true)
                .build();

並在gradle文件中也改變了

android {
    compileSdkVersion 25
    buildToolsVersion '25.0.1'

    defaultConfig {
        applicationId "com.MyApp.app"
        minSdkVersion 16
        targetSdkVersion 25
        multiDexEnabled true
    }

 compile 'com.android.support:appcompat-v7:25.1.0'
    compile 'com.android.support:design:25.1.0'

    compile 'com.android.support:customtabs:25.1.0+'
    compile 'com.android.support:design:25.1.0'
    compile 'com.android.support:support-v4:25.1.0'

我做的是那個

 compile 'com.android.support:customtabs:25.1.0+'

因為文檔說23版本,它會拋出此錯誤。

我已經在一個項目中使用了下面的sdk版本集

 compileSdkVersion 25
 buildToolsVersion '25.0.1'

但是我正在使用Chrome自定義標簽並獲得相同例外的項目

 compileSdkVersion 24
 buildToolsVersion '24.0.0'

請將編譯和目標sdk版本從24更新到25

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM