web-dev-qa-db-ja.com

FragmentActivityを使用しようとすると、ActivityCompatApi23にアクセスできません

スマートウォッチでViewPagerを使用しようとしていますが、アプリケーションを再構築/実行/デバッグしようとするとエラーが発生し続けます。エラーが発生する場所であるFragmentActivityを使用しています。 stackoverflowとチュートリアルのWebサイトを検索して、何が問題になる可能性があるかを確認しました。多くの結果が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'
}
8
Lieven Luyckx

Eugen Pechanecの説明(元の投稿の下のコメントとして)に従って、私にとって問題が修正されました:

すべてのサポートライブラリは同じバージョンである必要があります。コンパイルSDKが25の場合、25.4.0です。コンパイルSDKが26の場合、26.0.1です。それらを混ぜないでください。

4
Lieven Luyckx

AppCompatActivityを使用すると、同様の問題が発生しました。

エラー:ActivityCompatApi23にアクセスできません

特定のサポートライブラリのバージョンを設定して修正しました。

compile 'com.Android.support:appcompat-v7:26.+' <-- Old
compile 'com.Android.support:appcompat-v7:26.0.2' <-- New
5
Tanner Perrien

私の問題は、インポートされているサポートライブラリのバージョンが競合していることでした。私のサブモジュールプロジェクトの1つは、古いバージョンのサポートライブラリを参照していました。それらを一致するように更新すると、問題が修正されました。 gradleコマンドを使用して依存関係を確認できます。

gradlew -p [YOUR_MODULE] dependencies

どこ [YOUR_MODULE]はメインモジュールの名前です

1
TheIT

GradleバージョンとGradleビルドバージョンを一致させ、次のように構成を設定してください。

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

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

それを機能させるために。

0