jmr*_*igg 2 groovy android gradle android-ndk
首先,我必须承认我对android和ndk有相当的经验,但gradle脚本对我来说是个新主题.我正在开发一个项目,其gradle脚本已经编写(这不是我的部分)并且工作正常.
我的问题是,一个特定的任务似乎找不到属性定义的ndk.dir,它是在local.properties文件中定义的.
项目结构(简化):
_ <project_root>
|_ <sub_project folder>
...
|_ main
|_ build.gradle
|_ local.properties
|_ ...
Run Code Online (Sandbox Code Playgroud)
local.properties文件如下所示:
ndk.dir=/home/ubuntu/dev/android-ndk-r9c
Run Code Online (Sandbox Code Playgroud)
在结构的build.gradle文件中定义的任务的有问题部分如下:
task buildNDKFlavorGooglePlayStore(type: Exec) {
if (project.ext.has('ndk.dir') && (project.ext.get('ndk.dir') != null)) {
ext.ndkBuild = new File((String)project.ext.get('ndk.dir'), 'ndk-build')
executable ndkBuild
} else {
throw new GradleException('Reason: ndk.dir is missing in ' + projectDir + '/local.properties')
}
(...)
}
Run Code Online (Sandbox Code Playgroud)
同步项目时,由于定义了gradle异常而出现错误.
有人可以帮忙吗?你能告诉我是否可以调试它?
先感谢您.如有必要,请随时询问额外信息.
这对我有用:
def getNdkDir() {
if (System.env.ANDROID_NDK_ROOT != null)
return System.env.ANDROID_NDK_ROOT
Properties properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
def ndkdir = properties.getProperty('ndk.dir', null)
if (ndkdir == null)
throw new GradleException("NDK location not found. Define location with ndk.dir in the local.properties file or with an ANDROID_NDK_ROOT environment variable.")
return ndkdir
}
def getNdkBuildCmd() {
def ndkbuild = getNdkDir() + "/ndk-build"
if (Os.isFamily(Os.FAMILY_WINDOWS))
ndkbuild += ".cmd"
return ndkbuild
}
Run Code Online (Sandbox Code Playgroud)
看这里了解详情.
| 归档时间: |
|
| 查看次数: |
4816 次 |
| 最近记录: |