代码之家  ›  专栏  ›  技术社区  ›  Lieven Luyckx

尝试使用FragmentActivity时无法访问ActivityCompatApi23

  •  8
  • Lieven Luyckx  · 技术社区  · 9 年前

    我试图在我的smartwatch上使用ViewPager,但在尝试重建/运行/调试应用程序时,我不断遇到错误。我使用的是FragmentActivity,这就是错误发生的地方。我搜索了stackoverflow和教程网站,看看可能是什么问题,很多结果都与构建相关。gradle文件。然而,我尝试了几乎所有我偶然发现的东西,但错误没有改变一次。

    Error: Cannot acces ActivityCompatApi23
    

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

    public class WearMainActivity extends FragmentActivity {
    

    Wearmain活动。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);
        }
    }
    

    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 回复  |  直到 9 年前
        1
  •  5
  •   Tanner Perrien    8 年前

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

    错误:无法访问ActivityCompatApi23

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

    compile 'com.android.support:appcompat-v7:26.+' <-- Old
    compile 'com.android.support:appcompat-v7:26.0.2' <-- New
    
        2
  •  4
  •   Lieven Luyckx    8 年前

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

        3
  •  1
  •   TheIT    8 年前

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

    gradlew -p [YOUR_MODULE] dependencies
    

    [YOUR_MODULE] 是主模块的名称

        4
  •  0
  •   Nappy    7 年前

    请匹配gradle版本和gradle构建版本,并按如下方式设置配置:

    distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
    
    classpath 'com.android.tools.build:gradle:3.0.1'