有没有办法在项目/解决方案属性中的Visual Studio中设置ANDROID_NDK_HOME环境变量?

时间:2015-03-10 02:35:29

标签: windows visual-studio visual-studio-2013 android-ndk environment-variables

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

在属性表中,有一个设置允许您定义用户宏并将其作为环境变量公开。我已经按照这里的说明(Visual Studio Property Pages Environment Variables),但它似乎没有工作(至少不是为了做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 ==========

我们还尝试了一个预构建事件,我们从命令行通过“set”设置环境变量而没有运气。

有关为什么这可能不起作用的任何想法?在调用Microsoft.Cpp.Android.Targets之后执行可能导致设置和公开环境变量的Android内容时构建顺序是否不同?

  • 更新*

关于此的一个小更新。

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

如果您不想设置ANDROID_NDK_ROOT和ANDROID_SDK_ROOT,可以创建用户宏来设置这些值。

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

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

第一个是:C:\ Program Files(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中的Import标记中看到任何设置来控制如何/是否继承其他属性。这可能是一些操作顺序吗?

1 个答案:

答案 0 :(得分:0)

在做了一些研究后,似乎答案就是目前无法完成。我在VS-Android插件TODO列表(https://code.google.com/p/vs-android/wiki/TODO_List

上找到了这个要点
  

能够覆盖SDK上的SDK / NDK / Ant / JDK的环境变量   物业单中的每个项目基础。