android - Android Studio 和 OpenCV “编译错误”、“无法解析可样式化的符号”
问题描述
我正在使用 android studio 3.3 版和 openCV 4.0.1 版
在 android studio 中设置 openCV 后,当我运行应用程序检查 openCV 是否加载成功时,出现“编译失败”错误。我检查了这个问题,我看到了一个错误'无法解析符号'styleable'。
我已经尝试过清理和重建项目。我还更新了 gradle 脚本的 sdk 版本。
这是我的应用程序 gradle 脚本:
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.homesafe.test"
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
sourceSets { main { jni.srcDirs = ['src/main/jni', 'src/main/jniLibs/'] } }
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation project(':openCVLibrary401')
}
这是我的 openCV gradle 脚本:
android {
compileSdkVersion 28
//buildToolsVersion "x.y.z" // not needed since com.android.tools.build:gradle:3.0.0
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_6
targetCompatibility JavaVersion.VERSION_1_6
}
sourceSets {
main {
jniLibs.srcDirs = ['../../jni']
java.srcDirs = ['src'] // TODO Use original files instead of copied into build directory
aidl.srcDirs = ['src']
res.srcDirs = ['/build/master_pack-android/opencv/modules/java/android_sdk/android_gradle_lib/res']
manifest.srcFile 'AndroidManifest.xml'
}
}
}
dependencies {
}
我不知道这里有什么问题。有什么帮助吗?太感谢了!
解决方案
您需要替换以下行:
res.srcDirs = ['/build/master_pack-android/opencv/modules/java/android_sdk/android_gradle_lib/res']
有了这个:
res.srcDirs = ['res']
推荐阅读
- node.js - 通过 GraphQL 访问 API - 使用 Promise.all 遍历多个页面
- python - 在 Docker 容器中安装和使用 Python 模块
- mysql - Mysql 搜索查询 - 包括连接表中的列
- javascript - 更改影响数据表的选项卡行为
- html - youtube 嵌入链接和图像之间的空间 - 我看不出它来自哪里?
- imagemagick-convert - 如何在 Linux 中制作合理大小的 gif?
- outlook-addin - 在 Outlook 2010 中重新启动后未启用加载项
- kotlin - Reactor 将 Flux 应用于其他 Flux 的每个发射?
- android - 数据库中的图像到listview android
- java - Android - 将 RxJava 与 Retrofit 一起使用会导致 IllegalArgumentException