Ari*_*ann 8 java-native-interface android android-ndk android-studio
你好,
我在一个包含大量C++文件的项目中使用带有NDK和JNI的Android Studio.当我在做一个C++改变文件 也不会在代码适用,除非我重建整个项目,并刷新整个C++文件,所以他们必须重新编译.编译过程每次小变化需要3分钟以上,每天20次,你已经失去了一个小时.
根据今天,我改变文件后,我去了
构建>>刷新链接的C++项目,
然后运行该项目,导致所有文件的完整,冗余编译.
我正在寻找编译器只刷新更改文件的方法,因此缩短了构建过程.
注意:此问题仅发生在Windows中,当我在Mac上运行Android Studio时,编译器仅重新编译相关文件.
这是我的CMakeLists.txt文件:
cmake_minimum_required(VERSION 3.4.1)
FILE(GLOB CPP_SRC
"src/main/cpp/*.c"
"src/main/cpp/*.h"
"src/main/cpp/*.cpp"
"src/main/cpp/*.hpp"
)
add_library(MyLib
SHARED
${CPP_SRC} )
find_library(
log-lib
log )
target_link_libraries(
MyLib
${log-lib} )
target_link_libraries(MyLib
android
log
EGL
GLESv2)
Run Code Online (Sandbox Code Playgroud)
和我的gradle.build文件:
apply plugin: 'com.android.library'
android {
signingConfigs {
config {
keyAlias '*****'
keyPassword '*****'
storeFile file(*****)
storePassword '*****'
}
}
compileSdkVersion 27
buildToolsVersion '27.0.3'
defaultConfig {
minSdkVersion 16
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
externalNativeBuild {
cmake {
arguments "-DANDROID_ARM_NEON=TRUE", "-DANDROID_TOOLCHAIN=clang", "-DANDROID_STL=c++_shared", "-DCMAKE_BUILD_TYPE=Release", "-DANDROID_CPP_FEATURES=rtti exceptions"
cppFlags "-D__STDC_FORMAT_MACROS", '-Ofast', '-fsigned-char', "-std=c++14", "-frtti", "-fexceptions", "-mtune=arm7", "-mfpu=vfpv3-d16", "-mfloat-abi=softfp", "-Wall",
"-DCOMPILE_EUROPE_ID_AND_FACE_OCR_MANAGER",
"-DCOMPILE_FRENCH_PASSPORT_SIGNATURE",
"-DCOMPILE_FRENCH_ID_BACK_OCR",
"-DCOMPILE_FRENCH_PASSPORT_SIGNATURE_MANAGER",
"-DCOMPILE_PASSPORT_AND_FACE_OCR_MANAGER",
"-DCOMPILE_MRZ_OCR",
"-DCOMPILE_FRENCH_ID_BACK_OCR_MANAGER"
}
ndk {
abiFilters 'x86', 'armeabi-v7a'
}
}
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a'
universalApk true
}
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.config
}
}
externalNativeBuild {
cmake {
path "CMakeLists.txt"
}
}
libraryVariants.all { variant -> variant.outputs.all { output ->
outputFileName = "${"libScanovateImaging"}.aar" }
}
}
allprojects {
repositories {
jcenter()
maven {
url "https://maven.google.com"
}
}
}
dependencies {
implementation 'com.google.android.gms:play-services-vision:15.0.0'
implementation 'com.android.support:recyclerview-v7:27.1.1'
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support.constraint:constraint-layout:1.1.0-beta6'
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support:design:27.1.1'
}
Run Code Online (Sandbox Code Playgroud)
提前致谢!
| 归档时间: |
|
| 查看次数: |
1343 次 |
| 最近记录: |