Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 是否有任何方法可以在项目/解决方案属性中的Visual Studio中设置ANDROID_NDK_HOME环境变量?_Windows_Visual Studio_Visual Studio 2013_Android Ndk_Environment Variables - Fatal编程技术网

Windows 是否有任何方法可以在项目/解决方案属性中的Visual Studio中设置ANDROID_NDK_HOME环境变量?

Windows 是否有任何方法可以在项目/解决方案属性中的Visual Studio中设置ANDROID_NDK_HOME环境变量?,windows,visual-studio,visual-studio-2013,android-ndk,environment-variables,Windows,Visual Studio,Visual Studio 2013,Android Ndk,Environment Variables,我正在为一个通过VisualStudio2013进行Windows和Android开发的项目设置构建和发布过程(尽管有些项目仍然需要2012年的配置)。我希望开发人员能够留在VisualStudio中,而不必跳出系统属性来更改他们的环境变量,以便测试NDK/SDK的另一个版本 在属性页中有一个设置,允许您定义用户宏并将其作为环境变量公开。我遵循了这里的说明(),但它似乎不起作用(至少不适合做Android的东西) 我们尝试在项目的属性页中设置用户宏以及“Microsoft.cpp.Android

我正在为一个通过VisualStudio2013进行Windows和Android开发的项目设置构建和发布过程(尽管有些项目仍然需要2012年的配置)。我希望开发人员能够留在VisualStudio中,而不必跳出系统属性来更改他们的环境变量,以便测试NDK/SDK的另一个版本

在属性页中有一个设置,允许您定义用户宏并将其作为环境变量公开。我遵循了这里的说明(),但它似乎不起作用(至少不适合做Android的东西)

我们尝试在项目的属性页中设置用户宏以及“Microsoft.cpp.Android.User”,但在生成时仍会出现相同的错误:

1>------ Build started: Project: libstuff, Configuration: Release Android ------
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5): error : Could not find the Android NDK, check that your ANDROID_NDK_ROOT path is correct!
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5): error : It's currently: '<unset>'
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5): error : The NDK can be downloaded at this URL:
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5): error : http://developer.android.com/sdk/ndk/index.html
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
1>----构建已启动:项目:libstuff,配置:发布Android------
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5):错误:找不到Android NDK,请检查您的Android\u NDK\u根路径是否正确!
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5):错误:当前为:“”
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5):错误:可以通过以下URL下载NDK:
1> C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\Microsoft.Cpp.Android.Targets(570,5):错误:http://developer.android.com/sdk/ndk/index.html
======生成:0成功,1失败,0最新,0跳过==========
我们还尝试了一个预构建事件,在该事件中,我们通过“set”从命令行设置了环境变量,但没有成功

有没有想过为什么这可能不起作用?在调用Microsoft.Cpp.Android.Targets后,执行Android操作时,会导致设置和公开环境变量的构建顺序是否不同

  • 更新*
这方面的一个小更新

我们已经能够将这一问题缩小到MSBuild及其如何加载属性的问题

如果不想设置ANDROID\u NDK\u根和ANDROID\u SDK\u根,可以创建一个用户宏来设置这些值

这些是: $(AndroidNdkDir)和$(AndroidsdkDir)

当MSBuild尝试执行任何android构建目标时,它将加载两个文件

第一个是:C:\ProgramFiles(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\vs-Android.EnvVars.props

这是设置AndroidNdkDir、AndroidSdkDir和其他android属性的地方

第二个文件取决于您所在的android平台。例如,这是它为我们加载的文件:C:\Program Files(x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\PlatformToolsets\arm-linux-androideabi-4.8

在该文件中设置了所有Gcc属性


由于某些原因,未设置在第一个文件中设置的AndroidNdkDir属性。我在MSBuild中的导入标记中没有看到任何控制如何/是否继承其他属性的设置。这可能是某种操作顺序吗?

在做了更多的研究之后,似乎答案是目前无法做到这一点。我在VS Android插件TODO列表中找到了这个要点()

能够在服务器上覆盖SDK/NDK/Ant/JDK的环境变量 在属性表中按项目进行