我的android studio 2.1.2有问题 我想用c ++编写一些代码。在Gradle中,我插入以下代码。
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.example.glm.lichtschnitt"
minSdkVersion 21
targetSdkVersion 23
versionCode 1
versionName "1.0"
renderscriptTargetApi 19
ndk {
moduleName "Verarbeitungs-lib"
ldLibs "log"
cFlags "-pthread -frtti -fexceptions -std=c++11 -std=c11"
stl "c++_static"
}
sourceSets.main {
jni.srcDirs = ["src/main/jni"]
//jniLibs.srcDir
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
ndk {
debuggable = true
}
}
debug {
debuggable = true
jniDebuggable = true
}
}
sourceSets { main { java.srcDirs = ['src/main/java', 'src/main/java/swig'] } }
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:23.1.0'
compile 'com.android.support:design:23.1.1'
}
在studio 1.5中我可以导入所有标题,如“vector.h”或“list.h” 在2.1.2中,我没有代码完成。我可以编译它,但android studio没有代码完成或其他东西,以便用stl头文件更好地编写代码。
这是一个错误还是我能做些什么来完成代码。 1.5我在android 6.0.1上有本机调试问题,这就是我要求2.1.2的原因。
我使用最新的nkd 12.我也尝试了ndk 10.同样的问题。
感谢
答案 0 :(得分:1)
根据这个issue,他们还没有修复它。 Android工作室仍然无法理解任何头文件。 我遇到同样的麻烦。您可以尝试更改
sourceSets.main {jni.srcDirs = ["src/main/jni"]}
到
sourceSets{main{jni{srcDirs = []}}}
,
但它不会解决所有问题
<强>更新强>
由于Google制作了Android Studio 2.2的一些预览版本,因此对本机代码(CMake,Android.mk makefile,ndk-build)的不同构建系统提供了安静的良好支持
现在我使用带有CMake的AS 2.2预览版6,我对链接代码或其他内容没有任何麻烦。本机调试器仍然存在问题,但我认为,我做错了。
例如,要使用Cmake,您可以在以下行中添加gradle脚本:
defaultConfig {
externalNativeBuild {
cmake {
abiFilters 'x86', 'x86_64', 'armeabi', 'armeabi-v7a', 'arm64-v8a'
}
}
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt' //this is path to you build script
}
}
所以,如果你不害怕AS的非发行版本,你可以使用它,它对本机代码来说已经足够了