スマートウォッチで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'
}
Eugen Pechanecの説明(元の投稿の下のコメントとして)に従って、私にとって問題が修正されました:
すべてのサポートライブラリは同じバージョンである必要があります。コンパイルSDKが25の場合、25.4.0です。コンパイルSDKが26の場合、26.0.1です。それらを混ぜないでください。
AppCompatActivity
を使用すると、同様の問題が発生しました。
エラー:ActivityCompatApi23にアクセスできません
特定のサポートライブラリのバージョンを設定して修正しました。
compile 'com.Android.support:appcompat-v7:26.+' <-- Old
compile 'com.Android.support:appcompat-v7:26.0.2' <-- New
私の問題は、インポートされているサポートライブラリのバージョンが競合していることでした。私のサブモジュールプロジェクトの1つは、古いバージョンのサポートライブラリを参照していました。それらを一致するように更新すると、問題が修正されました。 gradleコマンドを使用して依存関係を確認できます。
gradlew -p [YOUR_MODULE] dependencies
どこ [YOUR_MODULE]
はメインモジュールの名前です
GradleバージョンとGradleビルドバージョンを一致させ、次のように構成を設定してください。
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.Zip
classpath 'com.Android.tools.build:gradle:3.0.1'
それを機能させるために。