首页 文章

AndroidStudio Gradle项目即使项目说22.2.1,拉入appcompat-v7版本23.0.0

提问于
浏览
0

幕后发生了一些事情,由于依赖性堆栈中的冲突,我的项目将不再构建和/或运行 .

我试图修改依赖项的版本号,并确认facebookSDK项目设置为使用支持lib v22构建 . 我怎样才能弄清楚是什么导致v23 appcompat支持lib进入我的项目?

Here's the build error I am getting:

/build/intermediates/exploded-aar/com.android.support/appcompat-v7/23.0.0/res/values-v23/values-v23.xml错误:(2)检索项目的父项时出错:找不到资源匹配给定名称'android:TextAppearance.Material.Widget.Button.Inverse' . 错误:(2)检索项目的父项时出错:找不到与给定名称“android:Widget.Material.Button.Colored”匹配的资源 .

And the gradle info:

android {
  compileSdkVersion 22
  buildToolsVersion "22.0.1"
  defaultConfig {
    ...
    minSdkVersion 15
    targetSdkVersion 22

    multiDexEnabled true
  }
}

dependencies {
  compile project(':facebookSDK')
  compile 'com.android.support:support-v4:22.0.0'
  compile 'com.android.support:appcompat-v7:22.2.1'
  compile 'com.google.android.gms:play-services:8.4.0'
  compile 'com.android.support:design:22.2.1'
  compile 'com.android.support:cardview-v7:22.2.1'
  compile 'com.android.support:multidex:1.0.0'
...
}

2 回答

  • 1

    Facebook及其 facebook-android-sdk 试图尽可能保持他们的依赖关系 . 您有 23.0.0 Android支持库版本的问题,我用 23.1.1 ... :-)

    我强烈建议您将现有配置更改为此配置:

    android {
      compileSdkVersion 24
      buildToolsVersion "24.0.1"
      defaultConfig {
        ...
        minSdkVersion 15
        targetSdkVersion 22
    
        multiDexEnabled true
      }
    }
    
    dependencies {
      compile 'com.android.support:support-v4:24.1.1'
      compile 'com.android.support:appcompat-v7:24.1.1'
      compile 'com.google.android.gms:play-services:8.4.0'
      compile 'com.android.support:design:24.1.1'
      compile 'com.android.support:cardview-v7:24.1.1'
      compile 'com.android.support:multidex:1.0.0'
    ...
      compile 'com.facebook.android:facebook-android-sdk:4.+'
    }
    

    看,你甚至可以添加facebook-android-sdk作为Gradle的依赖项,这样你就可以删除existsin文件夹而不用担心保持新鲜感 .

    您还可以保持低位 targetSdkVersion ,这在您不想实现Android权限或打盹模式兼容性等方面很有用 .

    希望它会有所帮助

  • 2

    您可以将这些行更新为最新版本,而不会影响您可以运行代码的API级别 . 您缺少v23资源,因此请至少使用版本23进行编译 .

    compileSdkVersion 22
    buildToolsVersion "22.0.1"
    

    这些行应该是相同的版本,但使用 support:design 库时甚至不需要它们 . 随意删除这些 .

    compile 'com.android.support:support-v4:22.0.0'
    compile 'com.android.support:appcompat-v7:22.2.1'
    

    对于这一行,我非常怀疑您使用的是所有Google Play服务 . 请在您的应用中阅读only using those you really need .

    compile 'com.google.android.gms:play-services:8.4.0'
    

    在你缩小这些可能性后,我建议你使用这些(从经验来看,似乎工作正常) .

    compile 'com.android.support:design:23+'
    compile 'com.android.support:cardview-v7:23+'
    

    由于您没有显示Facebook依赖关系,因此很难就此提供建议

相关问题