我一直在分别处理两个android工作室项目。
项目1 :使用第三方专有库(SDK minversion 9
)生成在线信用卡交易。编码后,应用程序工作正常。
项目2 :使用另一个第三方专有lib(SDK minversion 5
)来处理audioJack读卡器。编码后,应用程序也可以正常工作。
当我尝试合并它们以创建完整的POS解决方案时,问题就开始了。它源于sdk版本库的差异。
我尝试在合并后更改build.gradle
文件中的min版本参数...但之后, Project 2 的代码开始生成错误,因为新的sdk版本用于编译(可能它里面有一些不推荐的类)。
1)使用此Gradle,这可以正常工作:apply plugin: 'com.android.application'
android {
compileSdkVersion 20
buildToolsVersion "25.0.2"
defaultConfig {
applicationId "com.acs.audiojackdemo"
minSdkVersion 5
targetSdkVersion 20
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile files('libs/acsaudiojack-1.0.0preview15.jar')
}
2)添加库时会抛出错误:
compile('com.mercadopago:sdk:2.3.6@aar') { transitive = true }
错误是:
Error:Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed :
uses-sdk:
minSdkVersion 5 cannot be smaller than version 9 declared in library
[com.mercadopago:sdk:2.3.6]
C:\Users\jajal\.android\build-cache\2c961bb48263cf26566b0501fade730485d110de\output\AndroidManifest.xml
Suggestion: use tools:overrideLibrary="com.mercadopago" to force usage
3)如果我将minSdkVersion
值从5
更改为9
,我会收到很多错误。第一个错误是:
Error:(3) Error retrieving parent for item:
No resource found that matches the given name
'android:Widget.Material.Spinner.Underlined'.