尝试使用 FragmentActivity 时无法访问 ActivityCompat Api 23
Cannot acces ActivityCompatApi23 when trying to use FragmentActivity
我正在尝试在我的智能手表上使用 ViewPager,但在尝试 rebuild/run/debug 我的应用程序时总是出现错误。我正在使用 FragmentActivity,这是发生错误的地方。我搜索了 Whosebug 和教程网站,看看可能是什么问题,很多结果都与 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(磨损)
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'
}
我刚刚在使用 AppCompatActivity
时遇到了类似的问题:
error: cannot access ActivityCompatApi23
我通过设置特定的支持库版本来修复:
compile 'com.android.support:appcompat-v7:26.+' <-- Old
compile 'com.android.support:appcompat-v7:26.0.2' <-- New
我的问题是正在导入的支持库版本冲突。我的一个子模块项目引用了旧版本的支持库。更新它们以匹配解决了这个问题。您可以使用 gradle 命令检查您的依赖项:
gradlew -p [YOUR_MODULE] dependencies
其中 [YOUR_MODULE]
是您的主模块的名称
按照 Eugen Pechanec 的解释(作为原始 post 下方的评论)解决了我的问题:
All support libraries need to be same version. If your compile SDK is
25, it's 25.4.0. If your compile SDK is 26, it's 26.0.1. Don't mix
them.
请匹配您的 gradle 版本和 gradle 构建版本并像这样设置配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
classpath 'com.android.tools.build:gradle:3.0.1'
使其发挥作用。
我正在尝试在我的智能手表上使用 ViewPager,但在尝试 rebuild/run/debug 我的应用程序时总是出现错误。我正在使用 FragmentActivity,这是发生错误的地方。我搜索了 Whosebug 和教程网站,看看可能是什么问题,很多结果都与 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(磨损)
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'
}
我刚刚在使用 AppCompatActivity
时遇到了类似的问题:
error: cannot access ActivityCompatApi23
我通过设置特定的支持库版本来修复:
compile 'com.android.support:appcompat-v7:26.+' <-- Old
compile 'com.android.support:appcompat-v7:26.0.2' <-- New
我的问题是正在导入的支持库版本冲突。我的一个子模块项目引用了旧版本的支持库。更新它们以匹配解决了这个问题。您可以使用 gradle 命令检查您的依赖项:
gradlew -p [YOUR_MODULE] dependencies
其中 [YOUR_MODULE]
是您的主模块的名称
按照 Eugen Pechanec 的解释(作为原始 post 下方的评论)解决了我的问题:
All support libraries need to be same version. If your compile SDK is 25, it's 25.4.0. If your compile SDK is 26, it's 26.0.1. Don't mix them.
请匹配您的 gradle 版本和 gradle 构建版本并像这样设置配置:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
classpath 'com.android.tools.build:gradle:3.0.1'
使其发挥作用。