Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志

news2024/11/16 18:45:10

Android JNI配置CMakeLists.txt修改.cpp在logcat打印日志

C/C++代码里面常用的printf没法在Android 的logcat输出显示。需要特别配置C++才能显示在logcat里面。

(1)CMakeLists.txt定义:

find_library( # Sets the name of the path variable.
              log-lib

              # Specifies the name of the NDK library that
              # you want CMake to locate.
              log )
target_link_libraries( # Specifies the target library.
        application #自己的库

        # Links the target library to the log library
        # included in the NDK.
        ${log-lib} )

(2).cpp中:

#include <string>
#include <android/log.h>

const char *TAG="fly";

#define LOG __android_log_print

void LOGI(const char *info, const char *c) {
    std::string str = info;
    LOG(ANDROID_LOG_INFO, TAG, str.append("%s").c_str(), c);
}

void LOGI(const char *info, int num) {
    LOGI(info, std::to_string(num).c_str());
}

void LOGI(const char *info) {
    LOG(ANDROID_LOG_INFO, TAG, "%s", info);
}

Android添加C++/CPP项目代码(2)_zhangphil的博客-CSDN博客基于Windows平台,Android NDK(JNI)开发技术》【摘要】本文介绍如何基于Windows平台,在Eclipse中使用Android NDK技术实现“Android平台上的JNI ( Java Native Interface ) ”开发。新增的getStringCpp()是新增的一个方法,因为没有实现所以报红。以上完成后,就可以在Java层像使用普通Java函数一样使用getStringCpp()其中,loadLibrary()里面填写的即是(2)里面的xxx.cpp的xxx名字。https://blog.csdn.net/zhangphil/article/details/130207425

Android导入第三方SO库,上层Java调用(1)_zhangphil的博客-CSDN博客(3)把第三方的.so库文件放到\app\libs下。需要注意的,现在一般是64位的so库,如果app\libs下没有\arm64-v8a文件夹,需要新建arm64-v8a目录文件,然后把64位的so库放到。(2)在module的路径下,比如app\下,如果有app\libs目录,不需新建,如果没有,在app\下,新建libs,形成\app\libs目录。Android NDK(JNI)开发_ndk-r10e 版本对应什么sdk_zhangphil的博客-CSDN博客。https://blog.csdn.net/zhangphil/article/details/130204631

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/493338.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

yolov1原理

目标检测方法 传统的方法可以按照检测系统分为两种&#xff1a; DPM&#xff0c;Deformatable Parts Models&#xff0c;采用sliding window检测R-CNN、Fast R-CNN。采用region proposal的方法&#xff0c;生成一些可能包含待检测物体的potential bounding box&#xff0c;再…

opencv_c++学习(三)

一、获取图像像素指针 CV Assert(mylmage.depth() CV 8U); CV_Assert()函数判断图像数据的类型是否为uchar类型&#xff0c;不满足则抛出异常。 Mat.ptr(int i0)获取像素矩阵的指针&#xff0c;索引i表示第几行&#xff0c;从0开始计行数。 Mat.ptr(int i0)获取像素矩阵的指针…

【五一创作】【远程工具】- Tabby 下载、安装、使用、配置【ssh/Serial】-免安装、解压即用

目录 一、Tabby 概述 二、Tabby 下载、安装 三、Tabby 的使用  &#x1f449;3.1 使用SSH协议连接Linux开发主机  &#x1f449;3.2 使用Serial(串口)协议连接开发板 一、Tabby 概述 在远程终端工具中&#xff0c;secureCrt 和 XShell 是两款比较有名的远程工具&#xff0c;但…

shell脚本之例题详解

文章目录 1 检查用户家目录中的test.sh文件是否存在&#xff0c;并且检查是否有执行权限2 提示用户输入100米赛跑的秒数&#xff0c;要求判断秒数大于0且小于等于10秒的进入选拔赛&#xff0c;大于10秒的都淘汰&#xff0c;如果输入其它字符则提示重新输入&#xff1b;进入选拔…

Selenium:集成测试报告

目录 一、分拆后的实现代码 二、创建用于执行所有用例的ALL_HTMLtest.py文件 三、集成测试报告 随着软件不断迭代功能越来越多&#xff0c;对应的测试用例也会呈指数增长。一个实现几十个功能的项目&#xff0c;对应的用例可能有上百个甚至更多&#xff0c;如果全部集成在一…

RocketMQ中单消费者订阅多个Topic,会阻塞消费吗?

RocketMQ 问题 背景是这样&#xff1a; 最近有个项目用MQ做消息流转&#xff0c;在RocketMQ集群模式下&#xff0c;一个消费者实例&#xff0c;订阅了两个Topic A、B。 Topic A&#xff1a;存储的是批量业务消息。 Topic B&#xff1a;存储的是单个业务消息。 有个小伙伴问我…

基于C++的职工管理系统

1、管理系统需求 职工管理系统可以用来管理公司内所有员工的信息 本教程主要利用C++来实现一个基于多态的职工管理系统 公司中职工分为三类:普通员工、经理、老板,显示信息时,需要显示职工编号、职工姓名、职工岗位、以及职责 普通员工职责:完成经理交给的任务 经理职责:完成…

分布式系统概念和设计-分布式文件系统服务体系结构和实践经验

分布式系统概念和设计 文件系统的特点 负责文件的组织&#xff0c;存储&#xff0c;检索&#xff0c;命名&#xff0c;共享和保护 文件包含数据和属性 数据&#xff1a;包含一系列数据项——8比特的字节&#xff0c;读写操作可访问任何一部分数据属性&#xff1a;用一个记录表…

一文详解 SCTP 协议

SCTP(Stream Control Transmission Protocol)流控制传输协议,由 RFC2960 定义。SCTP的设计目的是提供一种可靠的、面向消息的数据传输服务,以便于支持多点通信以及满足传输的可靠性需求。SCTP 目前广泛应用于VoIP、移动通信和云计算等领域。 SCTP 主要特点SCTP 消息结构SCTP …

Android9.0 原生系统SystemUI下拉状态栏和通知栏视图之锁屏通知布局

1.前言 在9.0的系统rom定制化开发中,对于系统原生systemui的锁屏界面的功能也是非常重要的,所以在锁屏页面布局中,也是有通知栏布局的,所以接下来对于息屏亮屏 通知栏布局的相关流程分析,看下亮屏后锁屏页面做了哪些功能 2.原生系统SystemUI下拉状态栏和通知栏视图之锁…

应用层开发想转Android framework开发要从何开始

前言 现如今&#xff0c;由于市面上应用App的更新逐渐变少&#xff0c;很多Android移动应用开发者都开始转型做系统开发&#xff0c;这比开发应用有趣多了&#xff0c;因为你可以探索系统模块的运行原理&#xff0c;从框架层面去了解它。 在应用层&#xff0c;你只需要配置好…

JAVA-异常

文章目录 1.异常的体系1.3异常的分类 2.异常的处理2.2异常的抛出throw2.3异常的捕获2.3.1异常声明throws2.3.2 try-catch捕获并处理2.3.3 finally 2.4 异常的处理流程 3.自定义异常类 1.异常的体系 Throwable&#xff1a;是异常体系的顶层类&#xff0c;其派生出两个重要的子类…

前端框架篇学习--选择命令式还是声明式

命令式与声明式定义 大白话&#xff1a;假期回家了&#xff0c;我想吃老妈的大盘鸡&#xff0c;然后老妈就去采购食材&#xff0c;剁鸡块&#xff0c;卤鸡肉&#xff0c;切土豆&#xff0c;然后爆炒起来&#xff0c;想方设法给我做好吃的大盘鸡。老妈上菜的餐桌&#xff0c;我…

SQL语句学习笔记(对库、表、字段、的操作)

查看mysql的状态 status 启动、停止 mySQL服务 图像界面方法&#xff1a; dos窗口执行&#xff1a;services.msc 控制面板–>管理工具–>服务 命令行方法&#xff1a; 启动&#xff1a; net start mysql80 停止&#xff1a; net stop mysql80 启动与环境变量 添加环境…

UnityShaderBook中消融dissolve详解

消融这个效果算得上游戏开发中用的比较多的一个效果&#xff0c;表现游戏对象消失的时候经常用到&#xff0c;这个效果实现也非常简单&#xff0c;因此在《UnityShader入门精要》中也就短短几句话讲完了&#xff0c;这里我想针对书中的效果详细讲解一下。 Shader源代码&#x…

(浙大陈越版)数据结构 第二章 线性结构 2.2 堆栈

目录 2.2.1 什么是堆栈 堆栈 什么是堆栈 例子&#xff1a;计算机如何进行表达式求值&#xff1f;如&#xff1a;56/2-3*4 后缀表达式 堆栈的抽象数据类型描述 2.2.2 堆栈的顺序存储实现 例子&#xff1a;用一个数组实现两个堆栈&#xff0c;要求能最大利用数组空间&…

路径之谜(DFS)-2016年蓝桥杯国赛

路径之谜-2016年国赛 1、题目描述2、解题思路3、代码实现1、题目描述 小明冒充 X 星球的骑士,进入了一个奇怪的城堡。 城堡里边什么都没有,只有方形石头铺成的地面。 假设城堡地面是 nn* 个方格。如下图所示。 按习俗,骑士要从西北角走到东南角。可以横向或纵向移动,但不能…

【Java虚拟机】JVM常见诊断命令和调试工具

1.JVM常用命令行参数jps和jinfo实操 准备测试代码 /*** author lixiang* date 2023/5/4 20:53*/ public class JVMTest {public static void main(String[] args) throws InterruptedException {Thread.sleep(1000000);} }&#xff08;1&#xff09;命令jps&#xff1a;全称 …

【exgcd】牛客练习赛 D-青蛙兔子的约会

D-青蛙兔子的约会_牛客练习赛111 (nowcoder.com) 题意&#xff1a; 思路&#xff1a; 感觉和那个青蛙的约会比较像 就是列了个方程&#xff1a; a*xb*yn 考虑用exgcd解方程 然后看x在[L,R]有没有解 做法就是先把x的最小整数解求出来&#xff0c;然后考虑它的通解 xx0b/…

2023年五一数学建模 B 题过程与结果

文章目录 第一问第二问数据时序分析Auto-ARIMA第二问求解解的情况A->Q:D-> AQ-V总快递数 第三问第四问遗传算法求解 第五问SARIMA 模型拟合季节性规律 第一问 见 2023 年 五一杯 B 题过程 代码&#xff08;第一问&#xff09; 第二问 第二问考虑是一个时序预测问题&a…