尝试使用FragmentActivity时无法访问ActivityCompatApi23

时间:2017-08-14 15:04:37

标签: android android-fragments build.gradle android-fragmentactivity

我试图在智能手表上使用ViewPager,但在尝试重建/运行/调试我的应用程序时遇到错误。我正在使用FragmentActivity,这是发生错误的地方。我搜索了stackoverflow和教程网站,看看可能是什么问题,并且很多结果都与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(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'
}

4 个答案:

答案 0 :(得分:5)

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

  

错误:无法访问ActivityCompatApi23

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

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

答案 1 :(得分:4)

根据Eugen Pechanec的解释(作为原帖后面的评论)为我解决了问题:

  

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

答案 2 :(得分:1)

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

gradlew -p [YOUR_MODULE] dependencies

[YOUR_MODULE]是主模块的名称

答案 3 :(得分:0)

请匹配您的gradle版本和gradle构建版本,并按如下所示设置配置:

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

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

使其正常工作。