2023-01-21 301
我成功地在Android项目中实现了本机支持,但是在更改项目路径(只需将项目放入子目录中)之后,就会在构建应用程序时获得错误.
"app/.externalNativeBuild/cmake/debug/x86 --target native-lib is not a directory"
也无法清洁和重建项目.项目以前正在工作.项目路径中也没有空间.
感谢您提前的支持.
我正在使用Ubuntu 18.04,Cmake 3.10.2,Android Studio 3.3
这是cmakelists.txt(路径:appmodule/cmakelists.txt)
cmake_minimum_required(VERSION 3.4.1)
add_library( native-lib
SHARED
src/main/cpp/native-lib.cpp )
find_library( log-lib
log )
target_link_libraries( native-lib
${log-lib} )
和应用程序build.gradele
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
mavenCentral()
google()
}
android {
compileSdkVersion 28
defaultConfig {
applicationId 'application_id'
minSdkVersion 17
targetSdkVersion 28
versionCode 6
versionName "1.2"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
multiDexEnabled true
externalNativeBuild {
cmake {
cppFlags "-std=c++11"
}
}
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
debuggable true
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
如果您更改了应用程序 – > AppModule,则可以尝试
关闭项目
重新打开它
Studio 3.3.0具有一个错误影响IDE行为,请使用版本android/studio/ide-zips/3.3.1.0/android-studio-ide-182.5264788-linux.zip.zip” 或更好
对于Gradle的Cmake支持,应用程序可以以3种方式使用它,从最明确的方式开始,以”默认”:
假设Vanilla cmake是从cmake.org的本地下载的,
android {
externalNativeBuild {
version "3.14.0-rc2"
path '....' // point to your CMakeLists.txt, relative path to
// THIS app/build.gradle file.
}
}
带有香草cmake的下侧可能是SDK内部的模块(例如Androidndkmodules.cmake)可能不在您的模块路径中:该项目不使用SDK/Studio内部包装的CMAKE.
截至目前,SDK船2 cmake构建:3.6.0-rc2和3.10.2.您的SDK Manager将将它们下载到内部已知目录(SDK/CMAKE)中.项目可以选择一个特定的使用.当然,您可以使用上述”香草cmake”方式,即应用程序配置所有内容 – 点CMake.dir到您的$ SDK的cmake path(一直到一直到,但不包括,’bin/cmake’).
您也可以忽略cmake.dir配置(Studio在SDK内部提供了此便利性,并由SDK Manager下载),因此您只需要在’app/build.gradle’
中配置CMAKE版本
android {
externalNativeBuild {
version "3.10.2"
path '....'
}
}
关于Gradle插件功能的2个CMAKE版本之间没有区别,区别在Cmake本身之间的功能之间是2个版本之间的功能.
当前Gradle插件的默认CMAKE选择是内部3.6.0-RC2版本.因此,如果您不配置” cmake.dir”和”版本”,则默认值正在操作中.当然,您仍然可以像”香草cmake”方式一样对其进行配置:cmake path and version;它令人恐惧,但是有一个小好处:当工作室/gradle更改cmake默认值为3.10.2或其他时,您的应用不会受到影响.我们确实鼓励应用使用最新版本.作为应用程序开发人员,无论构建工具的版本如何,我也可能喜欢我的应用程序具有固定的行为.从这个意义上说,明确的方式有帮助.
以上所述是小编给大家介绍的– 靶标本地lib不是目录,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26322.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态