我将支持库从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'
答案 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