问题标签 [android-make]

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.

0 投票
0 回答
519 浏览

android - android 项目在 Linux 上构建,但不在 Windows 上

我正在尝试构建包含本机代码的存储库。它在 Ubuntu 上构建没有任何问题,但在 Windows 上构建失败,显示此错误:

我通过为 Windows 安装 make 并将其添加到路径中解决了这个问题。但出现了另一个错误:

整个错误是:

还安装在 sdk 管理器和我的 local.properties 中的 LLDB、Cmake 和 NDK:

0 投票
1 回答
272 浏览

android - 使用 android:sharedUserId="android.uid.system" 属性获取 SystemProperties.java 类

我知道SystemProperties类不会因为@hide注释而作为公共 SDK 的一部分导出。

我做了什么:

  1. 在文件上添加了android:sharedUserId="android.uid.system"属性AndroidManifest.xml

    显现

  2. 应用程序使用平台密钥签名

    .mk 文件

仍然出现编译错误...

注意:我已经检查了where is ossystemproperties问题

但是这个解决方案对我不起作用。

0 投票
0 回答
253 浏览

android - Android Java 与 Native C 未定义的对 `__android_log_print' 的引用

我知道这个问题已经被问了一百万次,但是我已经尝试了列出所有类型配置的所有方法,但无法让它工作。我真的需要从我的 C 代码中获取日志信息。如果有人可以提供帮助,我将分享相关文件,这将是非常棒的。

在 C 文件中,我在所有包含项下添加:

在 C 代码中,我的日志记录行被添加为:

构建梯度:

Android.mk 文件:

库不使用 C 文件中的日志记录行构建。只是对 `__android_log_print' 的未定义引用列表,这真的很令人沮丧。我已经尝试了所有问题中提到的所有配置,因此向我指出另一个问题可能对我不起作用。

我现在产生了这个新错误:

继续现在在我的调试窗口中得到这个不知道这是否相关或有帮助我的本机代码是 C 而不是 C++:

这是控制台输出:

0 投票
1 回答
228 浏览

android - 如何将带有 Android Room 的应用添加为使用 makefile 编译的系统应用?

尝试安装一个使用 Android Room 构建数据库的简单应用程序,作为 AOSP 中的系统应用程序。坚持要在 Android.mk makefile 中包含的内容。

但是,在“make -j4”之后运行模拟器时,它会给出错误 -

E AndroidRuntime: java.lang.RuntimeException: 找不到 com.app.appname.RoleManagerDB 的实现。RoleManagerDB_Impl 不存在

E AndroidRuntime:在 com.app.appname.RoleManagerDB.getDatabase(RoleManagerDB.java:27) E AndroidRuntime:在 com.app.appname.MainActivity.lambda$onCreate$0$MainActivity(MainActivity.java:28)

E AndroidRuntime: at com.app.appname.-$$Lambda$MainActivity$xxx.run(Unknown Source:4) W ActivityTaskManager: 强制完成活动 com.app.appname/.MainActivity

我的应用程序可以在 Android Studio 上顺利编译和运行,那么我在 makefile 中缺少什么?

我的猜测是我似乎无法翻译 gradle 行:

annotationProcessor "androidx.room:room-compiler:$room_version"

到它的makefile等价物。任何帮助深表感谢!

0 投票
2 回答
1548 浏览

android - 使用 Android.mk 从预构建的 apk 文件中提取本机库

我有一个带有捆绑本机库的 APK 文件。当我使用 adb 安装它们时,库会在 <path-to_package>/lib/ 中正确创建,但我必须将我的 apk 与 Android.mk 文件一起集成到构建系统中。我需要在 make 中添加什么才能将库提取到目标上

0 投票
2 回答
132 浏览

c++ - 将共享库中定义的结构/数据的单个副本共享给多个共享库中定义的不同对象

语言:C++/C Android Makefile 系统:https ://developer.android.com/ndk/guides/android_mk

我有一个应用程序,它打开一个共享库foo.so并在 foo.so 我们打开其他三个共享库bar1.sobar2.sobar3.so在三个不同的线程(pthread_create)中但在同一个应用程序/进程中。pid 相同,bar1、bar2、bar3 的线程 id 不同

bar1.so, bar2.so,中的每一个bar3.so都具有Entry使用dlsymafter调用的函数,并且在库dlopen中创建了不同类型的对象bar1 2 3.so

bar1.sobar2.so并且bar3.so还具有到另一个名为的共享库的动态链接,该共享库baz.so具有一些常见的结构/例程。baz.so没有明确地 'dlopen' 编辑。在 bar1.so、bar2.so、bar3.so 的 make 文件中,我指定baz.so了它需要的共享库。我想创建一个单例结构,baz.so每个结构都可以写入和读取。bar1.sobar2.sobar3.so

baz.so我尝试在but中创建一个静态对象bar1.sobar2.so并且bar3.so似乎获得了它们不同的结构副本。它不共享。通过不同的副本,我的意思是根据下面的代码片段,当我在 bar2.so 中阅读时,sharedData.a是 10 而不是 22

即使所有 bar 库都在同一个进程下,我还需要使用共享内存 API 吗?

我已经检查了这些链接,但它似乎没有回答我的问题: 如何在两个应用程序之间共享单个共享库(* .so)实例 共享库结构

0 投票
0 回答
16 浏览

android-ndk - 在 Android 的 CPP 文件中加载 .so 库

我有一个 android 项目,它在加载本机库后对 native-lib.cpp 进行本机 jni 调用,如下所示。

现在,我有一个不属于我的 .so 文件(仅了解要使用的接口)。我需要在我的 native-lib.cpp 中使用 .so 的标头。

我如何将 .so 打包到我的项目中,因为它只与我的 .cpp 文件直接连接?

将 .so 文件放在项目的 cpp 文件夹中后,我尝试将其作为库添加到我的 cmake 中。

然后尝试如下链接:

但是没有找到“Interface.hpp”。如果我遗漏了什么,请指导。

0 投票
1 回答
311 浏览

android - 使用 Android.mk mm 命令构建的 APK 安装后未在设备中运行

我正在关注https://wladimir-tm4pda.github.io/porting/build_cookbook.html并修改了构建一个简单的 APK

Android.mk 文件位于顶层。

我已将其包含在 Android 10 AOSP 中,并mm在终端中使用命令构建。

输出的 apk 有 1MB 大(应该是 5MB),之后 adb install -r -t -f LocalPackage.apk 它不会出现在应用程序列表中。在 Android Studio 中构建时,它工作正常。

我的目标是让这个应用程序成为系统应用程序,但第一步是让mm构建成功。如何纠正这种情况?

在此处输入图像描述

在此处输入图像描述

更新:

我现在将Android.mk文件的位置更改AndroidManifest.xml为存在的位置,并且还更改了我的Android.mk.

现在我得到了一个 2MB 的应用程序,该应用程序在安装后显示在设备上,但是一旦我运行它并出现错误就会崩溃

形成的apk的内容是 在此处输入图像描述

使用 Gradle 构建的内容是 在此处输入图像描述

如何使用 mm 构建我的 apk 并成功运行?

0 投票
0 回答
103 浏览

android - Android.mk 是否需要 AndroidManifest.xml?

我正在尝试将我的应用程序构建为 AOSP 的一部分,并意识到该Android.mk文件没有将路径AndroidManifest.xml作为输入。

该命令如何mm仅使用 java 文件和资源构建应用程序?

Android 从哪里获取包含的信息AndroidManifest.xml

笔记:

目前,我的应用程序正在构建,mm但尺寸较小(1MB 对 5MB),并且在 adb 安装后不会显示在设备上。也许这会解决它。

我的Android.mk文件供任何参考