相关疑难解决方法(0)

如何在apk中打包本机命令行应用程序?

我想将Android原生命令行应用程序打包到apk中.我有使用jni/Android.mk的ndk-build构建的应用程序.输出位于libs/armeabi/<MyApp>中.我也有蚂蚁的apk建筑.但是,apk似乎没有拿起命令行应用程序.如果我解压缩apk应用程序不在那里.

我需要做些什么来让ant包含一个预先构建的命令行应用程序?

另外,我需要做什么才能让ant运行ndk-build?(已经回答:使用ANT脚本构建Android NDK)

command-line android android-ndk

8
推荐指数
1
解决办法
1万
查看次数

如何在NDK上将本机运行时库与dlopen集成?

对于我的本机c ++项目,我将设置预编译共享库的运行时加载,可以在启动时使用配置由客户端更改.什么是在Android上调用dlopen的正确方法?无论我做什么,dlopen永远不会打开任何共享库,如果我没有在我的Android.mk文件中将此库定义为预编译库,如下所示:

LOCAL_PATH := $(call my-dir)

LOCAL_CFLAGS += -DDEBUG 
LOCAL_CFLAGS += -DANDROID 

include $(CLEAR_VARS)
LOCAL_MODULE := bar
LOCAL_SRC_FILES := bar/bar.cpp
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/bar
include $(BUILD_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE := native_activity
LOCAL_SRC_FILES := main.cpp

LOCAL_LDLIBS := -llog 
LOCAL_LDLIBS += -landroid 

LOCAL_SHARED_LIBRARIES := bar

LOCAL_STATIC_LIBRARIES += android_native_app_glue

include $(BUILD_SHARED_LIBRARY)
$(call import-module, android/native_app_glue)
Run Code Online (Sandbox Code Playgroud)

在我的本机活动主类中,我尝试加载库:

void* lib = dlopen("/system/lib/armeabi-v7a/libbar.so", RTLD_NOW);
if (lib == NULL) {
    fprintf(stderr, "Could not dlopen(\"libbar.so\"): %s\n",
    dlerror());
    exit(1);
}else{
    LOGI("Library successfully loaded!");

    if (dlsym(lib, "bar") == NULL) {
        fprintf(stderr, "Symbol …
Run Code Online (Sandbox Code Playgroud)

android android-ndk

6
推荐指数
1
解决办法
1万
查看次数

在 App Bundle 中构建时缺少 .so 文件 lib

我正在尝试在 Playstore 上发布一个包含 .so lib 文件的应用程序。当我尝试调试它时,该应用程序运行良好。但是,当我尝试发布它并通过 .aab 将其上传到 PlayStore 并安装它时,我的应用程序找不到我放入 Jnilibs 文件夹中的 .so 文件。它说

未找到.so 文件

我尝试了很多解决方案(ndk、abifilters、split 等),但没有任何效果。我使用的是 Android Studio 北极狐 2020.3.1 版本。

java android .so google-play-console android-app-bundle

3
推荐指数
1
解决办法
8324
查看次数