尝试使用FragmentActivity时无法访问ActivityCompatApi23

Lie*_*ckx 8 android android-fragments android-fragmentactivity build.gradle

我正在尝试在我的智能手表上使用ViewPager,但在尝试重建/运行/调试我的应用程序时仍然遇到错误.我正在使用FragmentActivity,这是发生错误的地方.我搜索了stackoverflow和教程网站,看看可能是什么问题,并且很多结果都与build.gradle文件有关.但是我几乎尝试了所有我偶然发现的事情,但错误并没有改变一次.

错误:

Error: Cannot acces ActivityCompatApi23
Run Code Online (Sandbox Code Playgroud)

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

public class WearMainActivity extends FragmentActivity {
Run Code Online (Sandbox Code Playgroud)

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

build.gradle(WEAR)

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'
}
Run Code Online (Sandbox Code Playgroud)

Tan*_*ien 5

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

错误:无法访问ActivityCompatApi23

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

compile 'com.android.support:appcompat-v7:26.+' <-- Old
compile 'com.android.support:appcompat-v7:26.0.2' <-- New
Run Code Online (Sandbox Code Playgroud)


Lie*_*ckx 4

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

所有支持库都需要是相同的版本。如果你的编译SDK是25,那就是25.4.0。如果你的编译SDK是26,那就是26.0.1。不要混合它们。