Android Studio怪异警告

时间:2016-07-25 15:51:38

标签: android android-support-library appcompatactivity

我将支持库从23.1.1更新为23.4.0后,每次调用super cannot access android.support.v4.app.baseFragmentActivityEclair

的每次调用都会收到此警告AppCompatActivity

如果我将支持库更新为24.1.1警告更改为cannot access android.support.v4.app.baseFragmentActivityJB

有人能告诉我为什么会显示此警告,如何删除此警告:

这是以前的依赖关系: (没有错误)

compile 'com.android.support:palette-v7:23.1.1'
compile 'com.android.support:gridlayout-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'com.android.support:cardview-v7:23.1.1'

这是cannot access android.support.v4.app.baseFragmentActivityEclair警告后的依赖关系:

compile 'com.android.support:palette-v7:23.4.0'
compile 'com.android.support:gridlayout-v7:23.4.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.android.support:appcompat-v7:23.4.0'
compile 'com.android.support:design:23.4.0'
compile 'com.android.support:cardview-v7:23.4.0'

这是cannot access android.support.v4.app.baseFragmentActivityJB警告后的依赖关系:

compile 'com.android.support:palette-v7:24.1.1'
compile 'com.android.support:gridlayout-v7:24.1.1'
compile 'com.android.support:support-v4:24.1.1'
compile 'com.android.support:appcompat-v7:24.1.1'
compile 'com.android.support:design:24.1.1'
compile 'com.android.support:cardview-v7:24.1.1'

2 个答案:

答案 0 :(得分:2)

当我们项目中的一个软件包依赖于版本24.0支持库而另一个软件包依赖于版本23.4.0时,我们遇到了类似的问题。对于Android Studio(IntelliJ)IDE而言,这似乎是一个问题,而不是编译器,因为我们能够毫无问题地构建和运行项目。我们通过将24.0依赖关系恢复为23.4.0来解决警告问题。我怀疑朝着另一个方向发展(将我们所有的软件包依赖关系推进到24.0)也会消除警告,但由于我们项目中的软件包数量,我们没有对此进行实验。

答案 1 :(得分:1)

如果您正在寻找解决此问题,许多支持库都有一个名为libs/internal_impl-$VERSION.jar的内部库,其中包含这些类型的特定于版本的实现。要使IDE工作,您可以提取这些JAR并手动将它们包含在IDE的构建路径中。

例如,您可以使用以下命令提取此处引用的类(假设版本为24.2.1):

unzip support-fragment-24.2.1.aar libs/internal_impl-24.2.1.jar