J'essaie d'utiliser un ViewPager sur ma smartwatch, mais j'obtiens une erreur en essayant de reconstruire/exécuter/déboguer mon application. J'utilise FragmentActivity, c'est là que l'erreur se produit. J'ai effectué une recherche sur les sites stackoverflow et sur les tutoriels pour voir quel pourrait être le problème, et de nombreux résultats sont liés aux fichiers build.gradle. Cependant, j'ai essayé à peu près tout ce que je suis tombé sur, mais l'erreur n'a pas changé une fois.
L'erreur:
Error: Cannot acces ActivityCompatApi23
L'erreur se produit sur cette ligne, provenant du morceau de code ci-dessous.
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'
}
Après l'explication d'Eugen Pechanec (comme commentaire sous le message d'origine), le problème a été résolu pour moi:
Toutes les bibliothèques de support doivent avoir la même version. Si votre SDK de compilation est 25, c'est 25.4.0. Si votre SDK de compilation est 26, c'est 26.0.1. Ne mélangez pas leur.
Je viens de rencontrer un problème similaire lors de l'utilisation de AppCompatActivity
:
erreur: impossible d'accéder à ActivityCompatApi23
J'ai corrigé en définissant une version spécifique de la bibliothèque de support:
compile 'com.Android.support:appcompat-v7:26.+' <-- Old
compile 'com.Android.support:appcompat-v7:26.0.2' <-- New
Mon problème était des versions conflictuelles de la bibliothèque de support importée. L'un de mes projets de sous-modules faisait référence à une ancienne version de la bibliothèque de support. Leur mise à jour pour correspondre au problème résolu. Vous pouvez vérifier vos dépendances en utilisant la commande gradle:
gradlew -p [YOUR_MODULE] dependencies
Où [YOUR_MODULE]
est le nom de votre module principal