我正在尝试根据本教程使用android studio创建一个ndk项目,当我尝试同步我的gradle时出现此错误:
Gradle DSL method not found: 'flavorGroups()'
Run Code Online (Sandbox Code Playgroud)
我正在使用gradle 2.2.1,android studio 1.0.2.这是我的gradle文件的一部分:
defaultConfig.versionCode = 1
flavorGroups "abi"
productFlavors {
x86 {
flavorGroup "abi"
ndk {
abiFilter "x86"
}
versionCode = 3
}
arm {
flavorGroup "abi"
ndk {
abiFilter "armeabi-v7a"
}
versionCode = 1
}
mips {
flavorGroup "abi"
ndk {
abiFilter "mips"
}
versionCode = 2
}
fat {
flavorGroup "abi"
versionCode = 0
}
}
applicationVariants.all { variant ->
def abiVersion = variant.productFlavors.get(1).versionCode
variant.mergedFlavor.versionCode = abiVersion …Run Code Online (Sandbox Code Playgroud)
我想使用ffmpeg从QImage生成GIF - 所有这些都是以编程方式(C++)生成的.我正在使用Qt 5.6和ffmpeg的最后一个版本(构建git-0a9e781(2016-06-10).
我已经能够在.mp4中转换这些QImage并且它有效.我试图使用相同的原理GIF,改变格式像素和编解码器.GIF生成两张图片(每张1秒),15 FPS.
## INITIALIZATION
#####################################################################
// Filepath : "C:/Users/.../qt_temp.Jv7868.gif"
// Allocating an AVFormatContext for an output format...
avformat_alloc_output_context2(formatContext, NULL, NULL, filepath);
...
// Adding the video streams using the default format codecs and initializing the codecs.
stream = avformat_new_stream(formatContext, *codec);
AVCodecContext * codecContext = avcodec_alloc_context3(*codec);
context->codec_id = codecId;
context->bit_rate = 400000;
...
context->pix_fmt = AV_PIX_FMT_BGR8;
...
// Opening the codec...
avcodec_open2(codecContext, codec, NULL);
...
frame = allocPicture(codecContext->width, codecContext->height, codecContext->pix_fmt);
tmpFrame = allocPicture(codecContext->width, codecContext->height, AV_PIX_FMT_RGBA); …Run Code Online (Sandbox Code Playgroud) 我正在使用android studio 1.0.2,我正在尝试创建一个使用ndk和natives函数的android库.这基本上就是我项目的架构:
MyProject
---| MyAndroidApp
---| MyAndroidLibrary
---| jni
---| jniLibs
Run Code Online (Sandbox Code Playgroud)
在我的android库中,我有一个c ++包装器,它从共享库中调用函数.我创建了这个库ndk-build(它与eclipse完美配合).我在jniLibs文件夹/架构中添加了这个库(arm64-v8a,armeabi,armeabi-v7a,mips,mips64,x86和x86_64).我在MyAndroidLibrary/build.gradle中定义了以下Flavors:
productFlavors {
x86 {
flavorDimension "abi"
ndk {
abiFilter "x86"
}
}
arm {
flavorDimension "abi"
ndk {
abiFilter "armeabi-v7a"
}
}
mips {
flavorDimension "abi"
ndk {
abiFilter "mips"
}
}
fat {
flavorDimension "abi"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试从jni代码调用我的库函数时,我得到一个未定义的引用错误.换句话说,我的共享库似乎没有加载到jni端.但是,当我删除这些函数的调用并且我探索在输出中创建的.aar时,我可以检索库.so.
我对gradle的东西不是很熟悉,所以我不确定它的真正构造.
我正在寻找的是严格相当于Android.mk,使用gradle:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := mysharedlib
LOCAL_SRC_FILES := ../shared/mysharedlib.so
LOCAL_EXPORT_C_INCLUDES := ../shared/includes/mysharedlib.h
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := jni
LOCAL_SRC_FILES …Run Code Online (Sandbox Code Playgroud) 我是NDK开发的新手,当我尝试从cygwin终端调用ndk构建工具时,我正面临一个问题:
Android NDK: WARNING: There are no modules to build in this project!
Run Code Online (Sandbox Code Playgroud)
我在windows(x64)下使用r10d(64位)NDK.我尝试从包含带有简单.c文件和Android.mk的jni文件夹的项目的根目录中调用它:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
# Here we give our module name and source file(s)
LOCAL_MODULE := mycfile
LOCAL_SRC_FILES := mycfile.c
APP_PLATFORM := android-19
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助 !