小编use*_*906的帖子

如何使用Android Gradle插件0.7配置NDK

新的Android gradle插件(0.7)似乎包含对NDK的新支持,但在文档中几乎没有提到它(我发现的唯一参考是一个名为test的测试 ndkSanAngeles).

看起来gradle正在寻找我已经包含在我的PATH中的NDK.但是,构建项目失败了

  • 出了什么问题:任务执行失败':OGLTests:compileDefaultFlavorDebugNdk'.NDK未配置

如何在gradle中配置NDK?

我当前的build.gradle看起来像这样:

task nativeLibsToJar(type: Zip, description: 'create a jar with native libs') {
    destinationDir file("$buildDir/native-libs")
    baseName 'native-libs'
    extension 'jar'
    from fileTree(dir: 'src/main/libs', include: '**/*.so')
    from fileTree(dir: 'src/main/libs', include: '**/gdb*')
    into 'lib/'
}

tasks.withType(JavaCompile) {
    compileTask -> compileTask.dependsOn nativeLibsToJar
}

dependencies {
    compile fileTree(dir: "$buildDir/native-libs", include: '*.jar')
}

android {
    compileSdkVersion 19
    buildToolsVersion '19.0.0'

    defaultConfig {
        minSdkVersion 14
        targetSdkVersion 19
        versionCode 1
        versionName "0.1"

    }
    buildTypes {
        release {
            runProguard false
        }
        debug {
           // …
Run Code Online (Sandbox Code Playgroud)

android-ndk android-studio android-gradle-plugin

48
推荐指数
3
解决办法
6万
查看次数

Android Studio可以使用系统CMake吗?

我正在使用Android Studio + CMake构建本机库.AS请求安装CMake,即使我已经安装了CMake并且在我的路径中.你能告诉AS在某个地方寻找CMake,而不是安装另一个CMake吗?

cmake android-studio

15
推荐指数
1
解决办法
1150
查看次数

Android:是否可以在没有SurfaceView的情况下创建SurfaceTexture?

我想在类似于这个答案的设置中创建一个我可以管理的具有OpenGL纹理的SurfaceTexture.(引用到这里:)

  1. 通过OpenGL创建纹理
  2. 将此纹理传递给新SurfaceTexture的构造函数.
  3. 将这个新的SurfaceTexture提供给相机.
  4. 确保您使用的是OES_External(有关详细信息,请参阅文档).

但是,创建OpenGL纹理(如答案的第1步),需要EGL上下文,这需要使EGLSurface成为当前,这需要SurfaceTexture.似乎创建EGL上下文的唯一方法是创建一个SurfaceView(或具有SurfaceTexture的其他视图),并使用它初始化EGLSurface,然后使EGLContext保持最新.

我的目标是创建一个EGLContext并使其在后台线程中是最新的,在相机预览图像上进行一些屏幕外计算(主要使用NDK).我想创建一个库,并使其尽可能独立于UI.两个相关问题:

在Java方面,是否可以在不事先创建SurfaceTexture的情况下创建EGLContext?

在NDK方面,曾经有一个私有API调用来创建本机窗口android_createDisplaySurface(),但它不再起作用,而且,它是一个私有API.有没有办法用NDK创建表面?

我对使用EGL很陌生,我不明白为什么你需要一个EGLSurface来使EGLContext成为最新的.在iOS中,可以首先创建EAGLContexts,然后根据需要创建帧缓冲区.使用EGL似乎总是需要一个原生窗口.

android opengl-es android-ndk egl

11
推荐指数
1
解决办法
7334
查看次数