尝试使用 FragmentActivity 时无法访问 ActivityCompat Api 23

Cannot acces ActivityCompatApi23 when trying to use FragmentActivity

我正在尝试在我的智能手表上使用 ViewPager,但在尝试 rebuild/run/debug 我的应用程序时总是出现错误。我正在使用 FragmentActivity,这是发生错误的地方。我搜索了 Whosebug 和教程网站,看看可能是什么问题,很多结果都与 build.gradle 文件有关。然而,我尝试了几乎所有我偶然发现的东西,但错误一次都没有改变。

错误:

Error: Cannot acces ActivityCompatApi23

错误发生在这一行,来自下面的一段代码。

public class WearMainActivity extends FragmentActivity {

WearMainActivity.java

package be.ehb.dt.finalwork_lievenluyckx_v001;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;

import java.util.List;
import java.util.Vector;

/**
 * Created by Lieven on 14/08/17.
 */

public class WearMainActivity extends FragmentActivity {


    private PagerAdapter pagerAdapter;

    /* (non-Javadoc)
      * @see android.support.v4.app.FragmentActivity#onCreate(android.os.Bundle)
      */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.viewpager);
        //initialsie the pager
        initialisePaging();
    }

    /**
     * Initialise the fragments to be paged
     */
    private void initialisePaging() {

        List<Fragment> fragments = new Vector<Fragment>();
        fragments.add(Fragment.instantiate(this, Monitor.class.getName()));
        fragments.add(Fragment.instantiate(this, CurrentSongOverviewWear.class.getName()));
        this.pagerAdapter  = new MyPagerAdapter(getSupportFragmentManager(), fragments);

        ViewPager pager = (ViewPager) findViewById(R.id.viewpager_container);
        pager.setAdapter(this.pagerAdapter);
    }
}

build.gradle(磨损)

apply plugin: 'com.android.application'

android {
    allprojects {
        repositories {
            jcenter()
            maven {
                url "https://maven.google.com"
            }
        }
    }

    compileSdkVersion 25
    buildToolsVersion "25.0.1"
    defaultConfig {
        applicationId "be.ehb.dt.finalwork_lievenluyckx_v001"
        minSdkVersion 25
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

}

dependencies {
    compile 'com.android.support:wear:26.0.0'
    compile 'com.android.support:appcompat-v7:25.1.1'
    compile 'com.google.android.support:wearable:2.0.3'
    compile 'com.google.android.gms:play-services:11.0.4'
    provided 'com.google.android.wearable:wearable:2.0.3'
    compile 'com.android.support:support-v4:26.0.0-alpha1'
}

我刚刚在使用 AppCompatActivity 时遇到了类似的问题:

error: cannot access ActivityCompatApi23

我通过设置特定的支持库版本来修复:

compile 'com.android.support:appcompat-v7:26.+' <-- Old
compile 'com.android.support:appcompat-v7:26.0.2' <-- New

我的问题是正在导入的支持库版本冲突。我的一个子模块项目引用了旧版本的支持库。更新它们以匹配解决了这个问题。您可以使用 gradle 命令检查您的依赖项:

gradlew -p [YOUR_MODULE] dependencies

其中 [YOUR_MODULE] 是您的主模块的名称

按照 Eugen Pechanec 的解释(作为原始 post 下方的评论)解决了我的问题:

All support libraries need to be same version. If your compile SDK is 25, it's 25.4.0. If your compile SDK is 26, it's 26.0.1. Don't mix them.

请匹配您的 gradle 版本和 gradle 构建版本并像这样设置配置:

distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip

classpath 'com.android.tools.build:gradle:3.0.1'

使其发挥作用。