gpt4 book ai didi

android-studio - 使用具有不同版本 Android 依赖项的相同库的两个或多个库之间的冲突

转载 作者:行者123 更新时间:2023-12-03 17:18:34 25 4
gpt4 key购买 nike

我正在使用 react native 开发移动应用程序,在使用 npm install 安装 onesignal 之前一切正常,构建成功但在安装库后出现以下错误。

错误:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.1) from [com.android.support:cardview-v7:26.0.1] AndroidManifest.xml:25:13-35 is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:23:9-25:38 to override.

安装 Onesignal 之前的依赖列表(工作版本) https://gist.github.com/lulzimfazlija/543843cc8e36a0957ed5bc3238ab0ee0

安装 Onesignal 后的依赖列表(非工作版本) https://gist.github.com/lulzimfazlija/12b7f8d83c2ca680f420d3411cea729a

我知道这与库之间的冲突有关,但我无法修复它!

我尝试过的:

  compile('com.android.support:cardview-v7:26.0.1'){
exclude module: 'support-annotations'
}
compile('com.android.support:recyclerview-v7:26.0.1'){
exclude module: 'support-annotations'
}

compile('com.android.support:customtabs:26.0.1'){
exclude module: 'support-annotations'
}

compile('com.android.support:exifinterface:26.0.1'){
exclude module: 'support-annotations'
}

此更改后出现的错误:

Manifest merger failed : Attribute meta-data#android.support.VERSION@value value=(26.0.1) from [com.android.support:exifinterface:26.0.1] AndroidManifest.xml:25:13-35 is also present at [com.android.support:support-v4:26.1.0] AndroidManifest.xml:28:13-35 value=(26.1.0). Suggestion: add 'tools:replace="android:value"' to element at AndroidManifest.xml:23:9-25:38 to override.

预期结果:BUILD SUCCESS!

编辑 app.build.gradle:

buildscript {
repositories {
maven { url 'https://maven.fabric.io/public' }
}

dependencies {
classpath 'io.fabric.tools:gradle:1.+'
}
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'com.neenbedankt.android-apt'

repositories {
maven { url 'https://maven.fabric.io/public' }
}

android {
compileSdkVersion 26
buildToolsVersion '26.0.1'

defaultConfig {
applicationId 'com.ferrometal11'
targetSdkVersion 25
versionCode 1
versionName '0.1.0'
ndk {
abiFilters 'armeabi-v7a', 'x86'
}
multiDexEnabled true
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
// Deprecated. Used by net.openid:appauth
manifestPlaceholders = [
'appAuthRedirectScheme': 'host.exp.exponent'
]
manifestPlaceholders = [onesignal_app_id: "xxxx-cc74-430c-b7fd-6d9e0869fd6b",
onesignal_google_project_number: "REMOTE"]
}
dexOptions {
javaMaxHeapSize System.getenv("DISABLE_DEX_MAX_HEAP") ? null : "8g"
keepRuntimeAnnotatedClasses false
}
productFlavors {
// Define separate dev and prod product flavors.
dev {
// dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
// to pre-dex each module and produce an APK that can be tested on
// Android Lollipop without time consuming dex merging processes.
minSdkVersion 21
}
devRemoteKernel {
minSdkVersion 21
}
dev19 {
// For debugging / development on older SDK versions. Increases build
// time so use 'dev' if not running on older SDKs.
minSdkVersion 19
}
prod {
// The actual minSdkVersion for the application.
minSdkVersion 19
}
}
buildTypes {
debug {
debuggable true
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
zipAlignEnabled true
}
}
signingConfigs {
debug {
storeFile file('../debug.keystore')
}
}
lintOptions {
abortOnError false
}
packagingOptions {
pickFirst "**"
}
}

// Don't use modern jsc-android since it still has some critical bugs that
// crash applications when the string for the JS bundle is loaded and when
// locale-specific date functions are called.
// configurations.all {
// resolutionStrategy {
// force 'org.webkit:android-jsc:r216113'
// }
// }


task exponentPrebuildStep(type: Exec) {
workingDir '../'
if (System.getProperty('os.name').toLowerCase().contains('windows')) {
commandLine 'cmd', '/c', '.\\detach-scripts\\prepare-detached-build.bat'
} else {
commandLine './detach-scripts/prepare-detached-build.sh'
}
}
preBuild.dependsOn exponentPrebuildStep


dependencies {
compile project(':react-native-onesignal')
compile fileTree(dir: 'libs', include: ['*.jar'])

compile 'com.android.support:multidex:1.0.1'



// Our dependencies from ExpoView
// DON'T ADD ANYTHING HERE THAT ISN'T IN EXPOVIEW. ONLY COPY THINGS FROM EXPOVIEW TO HERE.
compile 'com.android.support:appcompat-v7:26.1.0'
compile 'com.facebook.android:facebook-android-sdk:4.7.0'
compile('com.facebook.android:audience-network-sdk:4.22.1') {
exclude module: 'play-services-ads'
}
provided 'org.glassfish:javax.annotation:3.1.1'
compile 'com.jakewharton:butterknife:7.0.1'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.amplitude:android-sdk:2.9.2' // Be careful when upgrading! Upgrading might break experience scoping. Check with Jesse. See Analytics.resetAmplitudeDatabaseHelper
compile 'com.squareup.picasso:picasso:2.5.2'
compile 'com.google.android.gms:play-services-gcm:12.0.1'
compile 'com.google.android.gms:play-services-analytics:12.0.1'
compile 'com.google.android.gms:play-services-maps:12.0.1'
compile 'com.google.android.gms:play-services-auth:12.0.1'
compile 'com.google.android.gms:play-services-location:12.0.1'
compile 'com.google.android.gms:play-services-ads:12.0.1'
apt 'com.raizlabs.android:DBFlow-Compiler:2.2.1'
compile "com.raizlabs.android:DBFlow-Core:2.2.1"
compile "com.raizlabs.android:DBFlow:2.2.1"
compile "com.madgag.spongycastle:core:1.53.0.0"
compile "com.madgag.spongycastle:prov:1.53.0.0"
debugCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
// debugCompile 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
compile 'com.facebook.device.yearclass:yearclass:1.0.1'
compile 'commons-io:commons-io:1.3.2'
compile 'me.leolin:ShortcutBadger:1.1.4@aar'
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
compile 'com.theartofdev.edmodo:android-image-cropper:2.4.7'
compile 'com.yqritc:android-scalablevideoview:1.0.1'
compile 'commons-codec:commons-codec:1.10'
compile 'com.segment.analytics.android:analytics:4.3.0'
compile 'com.google.zxing:core:3.2.1'
compile 'net.openid:appauth:0.4.1'
compile 'com.airbnb.android:lottie:2.2.0'
compile 'io.branch.sdk.android:library:2.6.1'
compile('io.nlopez.smartlocation:library:3.2.11') {
transitive = false
}
compile 'com.android.support:exifinterface:26.1.0'
compile 'com.squareup.okhttp3:okhttp:3.4.1'
compile 'com.squareup.okhttp3:okhttp-urlconnection:3.4.1'
compile 'com.squareup.okhttp3:okhttp-ws:3.4.1'
compile 'com.squareup.okio:okio:1.9.0'

// Testing
androidTestCompile 'com.android.support.test.espresso:espresso-core:3.0.1'
// We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
androidTestCompile 'com.android.support.test:runner:1.0.1'
androidTestCompile 'com.android.support:support-annotations:26.1.0'
androidTestCompile 'com.google.code.findbugs:jsr305:3.0.0'
androidTestCompile 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
androidTestCompile 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'


//My change
// compile('host.exp.exponent:expoview:26.0.0@aar') {
// transitive = true
// }
//
// compile('com.android.support:cardview-v7:26.0.1'){
// exclude module: 'support-annotations'
// }
// compile('com.android.support:recyclerview-v7:26.0.1'){
// exclude module: 'support-annotations'
// }
//
// compile('com.android.support:customtabs:26.0.1'){
// exclude module: 'support-annotations'
// }
//
// compile('com.android.support:exifinterface:26.0.1'){
// exclude module: 'support-annotations'
// }
//
// compile ('com.android.support:cardview-v7:26.1.0') {
// exclude group: 'com.android.support'
// // if you need to exlude appcompat-v7
//// exclude module: 'appcompat-v7'
// exclude module: 'support-annotations'
// }
// compile ('com.android.support:appcompat-v7:26.1.0'){
// exclude module: 'support-annotations'
// }
// compile ('com.android.support:exifinterface:26.1.0'){
// exclude module: 'support-annotations'
// }

// compile("com.android.support:support-v4:26.1.0") { force = true }
// compile("com.android.support:customtabs:26.1.0") { force = true }






}

// This has to be down here for some reason
apply plugin: 'com.google.gms.google-services'

补充说明:一旦添加了 compile project(':react-native-onesignal') 构建就会中断,所以这是破坏所有内容并导致依赖项之间发生冲突的行

最佳答案

我设法通过像这样更改我的 Google 服务依赖项来解决此问题:

compile ('com.google.android.gms:play-services-gcm:9.8.0'){
force true
}
compile ('com.google.android.gms:play-services-analytics:9.8.0'){
force true
}
compile ('com.google.android.gms:play-services-maps:9.8.0'){
force true
}
compile ('com.google.android.gms:play-services-auth:9.8.0'){
force true
}
compile ('com.google.android.gms:play-services-location:9.8.0'){
force true
}
compile ('com.google.android.gms:play-services-ads:9.8.0'){
force true
}

关于android-studio - 使用具有不同版本 Android 依赖项的相同库的两个或多个库之间的冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49829721/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com