我导入了一个项目并尝试构建它。该项目使用Zebra库。我可以看到有一个名为EMDK
的模块,其中包含build.gradle
。
apply plugin: 'com.android.library'
android {
compileSdkVersion 'Symbol Technologies, Inc.:EMDK 3.0 (API 16):16'
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 16
targetSdkVersion 16
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile project(':common')
}
在我的应用build.gradle
中,依赖关系为:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'], exclude: ['com.symbol.emdk.jar'])
compile 'com.android.support:support-v4:21.0.0'
provided files('./libs/com.symbol.emdk.jar')
compile('com.crashlytics.sdk.android:crashlytics:2.5.2@aar') {
transitive = true;
}
当我尝试构建时,我在../Library/Android/sdk
中收到此错误:
无法使用哈希字符串找到目标'Symbol Technologies,Inc。:EMDK 3.0(API 16):16
如何解决这个问题?
答案 0 :(得分:2)
您的SDK附加组件文件夹中是否有Symbol Technologies附加组件?
您还混合使用两种方式来包含jar,您不需要同时指定CompileSDKVersion
作为符号附加组件,也可以在您的gradle中提供jar。我个人更喜欢做后者,这里是one of my projects的一个例子:
def sdkDir = properties.getProperty('sdk.dir')
compileOnly fileTree(include: ['com.symbol.emdk.jar'], dir: sdkDir+'/add-ons/addon-symbol_emdk-symbol-23/libs/')
我认为将jar放在/libs/
目录中并不是一个好主意,即使你说'提供的文件',Android Studio也不会专门处理它并编译它...我我不确定,但我建议只是从我的项目示例中的附加组件目录中读取它。