我试图在智能手表上使用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'
}
答案 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'
使其正常工作。