问题标签 [vs-android]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 如何使用 vs-android 构建到多个 android 平台(可能还有 ABI)?
我正在将本机 C++ 引擎移植到 Android NDK。在尝试了一些环境和工具之后,我发现最新的 vs-android (0.9) 是最舒服的。我确实有一些问题(有些我可能需要在以后的问题中提出),但现在 - 这是一个:
本机引擎编译为本机共享库。我们希望引擎兼容 android-8 API (android 2.2)。
我们有一些内部使用的测试应用程序。我也将其中一个移植到了 Android,但由于我使用的是本机活动(以及最重要的本机应用程序胶水),它需要 android-9 (2.3)。
我有一些模块项目 - 静态库 - 用于引擎和测试器应用程序。我需要将这些编译为引擎的 android-8 和测试仪的 android-9。除此之外,我们还希望同时支持 arm5 和 arm7。
使用 ndk 构建脚本,我可以很容易地做到这一点。在 MS-Build(vs-android 使用)中,它似乎需要指数级的配置(不要忘记调试/配置文件/发布)。
有没有办法在不创建所有这些配置的情况下做到这一点?这样,例如,当我构建引擎时,它将为 android-8 以及 arm5 和 arm7 编译模块,而当我构建测试器时,它将为 android-9 和 arm5 和 arm7 编译模块,而无需为每个项目和调试、配置文件、发布创建 4 个几乎相同的配置?
我找到了这个,但我不确定如何使用它以及是否可以在这里应用父/子项目的技术。
(告诉我“不要再懒惰了,只需创建配置,尽管事实上无论何时你想更改参数,你都必须在所有配置中更改它”作为评论是可以接受的,但请 - 不要作为答案。 “使用 ndk-build 并手动构建你的 apk 而不是使用 vs-android”也是如此)。
谢谢!
(顺便说一句,有人可以添加一个 vs-android 标签吗?)
编辑: 我想出了一个部分解决方案 - 仅针对 API 级别的问题。请看下面我的回答。
vs-android - 圣安吉利斯项目
我试图为 vs-android 运行 san-angeles 示例...
我的机器上安装了 winxpsp3 和 vs 2010 ..
这些是安装步骤......我的问题是:在这一步......: NDK设置 从这里下载NDK:http: //developer.android.com/sdk/ndk/index.html 将它解压缩到某个地方,并注意根目录。您需要设置一个名为 ANDROID_NDK_ROOT 的环境变量,它指向该目录。这可以从命令行完成:
setx ANDROID_NDK_ROOT c:\android-ndk-r6
- 如何实现上述行( setx ANDROID_NDK_ROOT c:\android-ndk-r6 )???
android - 尝试编译 vs-android 应用程序时出现错误 MSB4062
我正在使用vs-android来编译他们网站上可用的示例应用程序。我正在使用 Visual Studio 11 开发者预览版
错误 MSB4062:无法从程序集 C:\ProgramFiles (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Platforms\Android\vs-android.Build.CppTasks.Android.dll 加载“GCCCompile”任务. 无法加载文件或程序集“Microsoft.Build.CPPTasks.Common, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”或其依赖项之一。该系统找不到指定的文件。确认声明正确,程序集及其所有依赖项都可用,并且任务包含实现 Microsoft.Build.Framework.ITask 的公共类。
我稍微修改了文件
Microsoft.Cpp.Android.Targets
查找错误中提到的 dll 文件。
VCTargetsPath 是正确的,我已经检查过了。我哪里错了?
android - 如何通过visual studio运行eclipse android模拟器
嗨,是否可以通过 MS Visual Studio 运行或通信 eclipse android 模拟器?如果是,请帮助我或说明如何设置可能的解决方案。
android - 如何在 vs-android 构建中启用 c++0x
我正在使用 vs-android (http://code.google.com/p/vs-android) 为带有 ndk 的 android 平台编译 c++ 项目。
除了编译使用 c++0x/c++11 标准中的特性(如 std::function、nullptr )的代码时,这一切都运行良好......我假设,或者至少希望,我可以解决这个问题通过添加编译器选项 -std=c++0x。
我尝试在“命令行”下的“附加选项”中添加它,一些错误似乎消失了,但不是全部。包括原因问题,types.h 抱怨 uint64_t 不存在和许多其他类似问题。
有谁知道如何解决这一问题?代码没有任何问题,因为它与针对 Windows 平台的 msvc10 完美编译。我正在使用视觉工作室 2010。
谢谢
linker - 如何在 Microsoft Visual Studio 中链接“.so”库
我想知道是否有人知道如何在 Microsoft Visual Studio 中链接 .so 动态库(或该母校的 .a 静态库)。以下步骤不适用于 .a 或 .so。
我正在使用vs-android插件在Android NDK中使用MVS进行开发,并且我正在尝试向项目添加一个编译为.so的自定义库。
1 - 在同一个解决方案中,我在示例项目之一(san-angeles 项目)旁边创建了一个动态库 (.so) 项目。
2 - 我已经设置了 .so 项目,我们称它为“引擎”作为 san-angeles 的依赖项。engine.so 文件生成没有任何问题,并出现在 {SolutionFolder?}/Android/Debug 文件夹中。
3 - 我已将 engine.so 添加到链接器中,附加包括 san-angeles 和 {SolutionFolder?}/Android/Debug 文件夹(作为完整路径,类似于 C:/projects/.../Debug)到额外的链接器目录。
但是当我编译 san-angeles 时,我得到了错误:
“arm-linux-androideabi-g++.exe:engine.so:没有这样的文件或目录”
所以我猜我需要做其他事情才能将 .so/.a 添加到项目中?也许将名称更改为 libengine.so 或类似的名称?很多默认包含都有 lib 前缀,所以我不知道它是否符合这些要求。
谢谢你的帮助,詹姆
android - 如何处理 android .mk 中的 LOCAL_STATIC_LIBRARIES
我正在尝试移植其中一个 android NDK 示例(本机活动)以使用允许我在 MVS 中开发的 vs-android 插件。
为此,我需要将 Android.mk 命令翻译成 MVS 可以处理的东西,而我遇到了其中一个问题。
Android.mk : LOCAL_PATH := $(call my-dir)
LOCAL_STATIC_LIBRARIES 和 $(call import-module,android/native_app_glue) 的行显然处理了使 native_activity 类发挥作用的核心的 native_app_glue。
关于如何根据 vs-android 中的编译行选项、MVS 的链接器选项或任何类似的东西来翻译它的任何想法?或者至少这两行是做什么的?
干杯,詹姆
android - 在 Visual C++ 2010 中使用 vs-android 运行 Cocos2d-x
我已经用我的 Visual C++ 2010 Express 设置了我的 vs-android。我现在可以在我的 android 设备上运行 vs-android 的示例项目。
我按照user1201239
这个问题在 Windows 上安装 Cocos-2dx以设置 vs-android/Visual C++ 2010 中的答案。
这是我的问题。在此设置中集成 cocos2d-x 的下一步是什么?
android - 使用 vs-android 构建发布 Android APK
我有大量的 C++ 本机代码和一小部分用于 Android 应用程序的包装 Java 代码。我能够使用 vs-android 将它们组合到一个 Android 应用程序中,并直接从 Visual Studio 2012 构建它。但我只能在调试模式下执行此操作。在 RELEASE - ant 抱怨我需要一个密钥来签署应用程序。 为了能够构建 RELEASE 应用程序并将其自动部署到设备(如在 DEBUG 模式下所做的那样),我需要做什么?
顺便说一句,我想构建一个 RELEASE 只是为了查看 C++ 代码的运行速度,而不是为了在 Google 商店上发布应用程序。因此,如果有一种方法可以注入在 DEBUG 模式下使用的密钥也用于 RELEASE,那就太好了。
我不想收到一个解决方案:运行一个创建未签名 APK 的构建,然后调用一个添加签名、zipaligns 等的批处理文件......我希望在点击“构建”按钮时一切都能顺利运行视觉工作室。
另一个糟糕的解决方案是使用 Ecllipse。我想使用视觉工作室。
请帮忙
android - 如何在构建期间从 .so 文件中删除符号
我正在使用 VS-android 框架直接从 Microsoft Visual Studio 2012 + Android NDK 编译 Android 共享对象。我使用 IDA 反汇编了我自己的 .so 文件,并惊恐地发现我的所有代码都是完全可见的(函数的名称、数据缓冲区的名称、类的名称等)。
我想删除所有调试和不需要的符号,因此通过反汇编很难理解我的代码。
编译过程如下:
- 我有 10 个 C++ 文件。每个都被编译成一个 .o 文件
- 然后将 main_service.c 编译为 main.o 并链接到所有其他 *.o 文件以生成 main_service.so 库。
我尝试了以下解决方案,但没有奏效:
- 将参数 -strip-all 提供给编译器和链接器。它似乎不起作用。
- 链接后,在 main_service.o 上使用 -strip-all 调用 objcopy.exe。这会稍微减小 main_serivce.so 的大小,但符号仍然存在
- 在我的 C++ 代码中,我从不使用“属性((visibility()))”,所以问题可能是链接器无法删除符号,因为它不知道什么是私有的,可以隐藏什么是公共的。我尝试将“属性((visibility("default")))”添加到我想在 JNI 中使用的 main_service.c 中的函数,并将 -fvisibility=hidden 标志添加到编译器和链接器。但是我收到了警告:忽略了“可见性”属性 [-Wattributes],并且没有删除符号
我在这里想念什么?
Ps - 我对“剥离符号”完全陌生,如果我的问题有点愚蠢,我很抱歉。
-