Android studio CMakeLists.txt 打印的内容位置

news/2024/7/8 3:46:45 标签: android studio, android, ide, CMakeLists.txt

最近在学习 cmake  就是在安卓中 , 麻烦的要死 , 看了很多的教程 , 发现没有 多少说对打印位置在哪里 , 先说一下版本信息 , 可能你们也不一样 

gradle  配置 

apply plugin: 'com.android.application'

android {
    compileSdkVersion 29
    buildToolsVersion "29.0.3"

    defaultConfig {
        applicationId "com.learn.test"
        minSdkVersion 25
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        externalNativeBuild {
            cmake {
                cppFlags ''
                abiFilters  'arm64-v8a' , 'x86'
            }
        }

        ndk{
            // 打包生成的 APK 文件指挥包含 ARM 指令集的动态库
            abiFilters  'arm64-v8a' , 'x86'//不同平台so/*, "arm64-v8a", "x86", "x86_64"*/
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }


    externalNativeBuild {
        cmake {
            path file('src/main/cpp/CMakeLists.txt')
            version '3.22.1'
        }
    }

}

dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'

}

重点 CMakeLists.txt 配置 

cmake_minimum_required(VERSION 3.22.1)


# 获取 Android 项目的根目录
set(ANDROID_PROJECT_ROOT ${CMAKE_SOURCE_DIR})

# 使用根目录构建路径
set(ANDROID_LIB_DIR ${ANDROID_PROJECT_ROOT}/app/src/main/jniLibs/${ANDROID_ABI})

# 输出路径
message("Android Project Root: ${ANDROID_PROJECT_ROOT}")
message("Android Lib Directory: ${ANDROID_LIB_DIR}")

# 设置 Android NDK 的路径
set(ANDROID_NDK  /DevelopmentTool/Sdk/ndk/21.0.6113669)

这个就是一个简单打印 问题是打印内容在哪里?  找了很久终于找到位置了 

app/build/intermediates/cxx/Debug/c1z1m6iy/meta/x86/metadata_generation_stderr.txt

你就说这玩意儿有多垃圾 , 

metadata_generation_stderr.txt  名字居然是这个 

CMake Warning (dev) in CMakeLists.txt:
  No project() command is present.  The top-level CMakeLists.txt file must
  contain a literal, direct call to the project() command.  Add a line of
  code such as

    project(ProjectName)

  near the top of the file, but after cmake_minimum_required().

  CMake is pretending there is a "project(Project)" command on the first
  line.
This warning is for project developers.  Use -Wno-dev to suppress it.

Android Project Root: D:/Androidstudioproject/MyApplication2/app/src/main/cpp
Android Lib Directory: D:/Androidstudioproject/MyApplication2/app/src/main/cpp/app/src/main/jniLibs/x86
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_EXPORT_COMPILE_COMMANDS
    CMAKE_LIBRARY_OUTPUT_DIRECTORY
    CMAKE_RUNTIME_OUTPUT_DIRECTORY


这里面就是 message 输出的内容 , 真的很垃圾 

目前并不知道拿到路径方式 只能采用这种方式 , 你们可以在网上打印

# 获取 Android 项目的根目录(相对于 CMakeLists.txt 所在目录)
get_filename_component(ANDROID_PROJECT_ROOT ${CMAKE_CURRENT_LIST_DIR}/../../.. REALPATH)

# 构建相对路径
set(RELATIVE_PATH src/main/java/com/learn/test)

# 构建完整路径
set(JAVA_SOURCE_DIR ${ANDROID_PROJECT_ROOT}/${RELATIVE_PATH})

# 在这里可以使用 JAVA_SOURCE_DIR 变量来设置路径
message("Java Source Directory: ${JAVA_SOURCE_DIR}")


http://www.niftyadmin.cn/n/5294175.html

相关文章

shell打印粉色小心心、颜文字心心

#!/bin/bash # *********************************************************# # # # * Author : 白嫖一茶 # # * QQ邮箱址 : 2534824121qq.com # #…

js实现前端下载图片和文件资料

说明:下载图片和文档资料是两种不同的方式,所以需要先判断下载的是图片还是word,excel等文件资料 目录 1.文件资料下载: 2.图片资源下载 1.文件资料下载: window.location.href 文件路径; handleClick(item) {let…

JAVA:利用JUnit进行高效的单元测试

1、简述 在软件开发中,单元测试是确保代码质量和可维护性的关键步骤。JUnit作为Java领域最流行的单元测试框架之一,提供了简单而强大的测试工具,可以帮助开发者在项目开发过程中及时发现和修复代码中的问题。本文将介绍JUnit的基本用法以及一…

【Linux系统化学习】进程终止的奥秘

个人主页点击直达:小白不是程序媛 Linux专栏:Liunx系统化学习 代码仓库:Gitee 目录 获取函数返回值 退出码 进程退出的场景 错误码 信号终止异常代码 进程的终止 main函数直接return exit函数 _exit函数 获取函数返回值 在C语言学…

鸿蒙OS应用开发之气泡提示

前面学习了弹窗提示,其实有时候只是想在旁边做一些说明,那么采用弹窗的方式就比较麻烦一些,这时可以采用系统里面的气泡提示方式。 系统也提供了几种方式弹出气泡提示,最简单的一种是采用bindPopup属性。它的定义如下: 在后面的参数设置里,也是比较复杂的形式。我们先来演…

【PHP】函数array_intersect、array_diff:从数组中取出、去除指定的几个键值

1.从数组中取出 :array_intersect 要从数组中取出指定的几个键值,可以使用 array_intersect_key 函数。以下是一个示例: $array [name > John,age > 30,email > johnexample.com,city > New York ];$keys [name, email];$resu…

<limits.h> 头文件:限制和特性

引言 <limits.h>头文件提供了关于整数数据类型的各种限制和特性的信息。在本博客中&#xff0c;我们将深入探讨<limits.h>头文件的功能和用法&#xff0c;以便更好地理解和利用这一重要的标准库头文件。 了解<limits.h>的用途 <limits.h>头文件定义了…

网络攻击之-暴力破解/密码喷射流量告警运营分析篇

本文从暴力破解/密码喷射的定义,暴力破解/密码喷射的流量数据包示例,暴力破解/密码喷射的suricata规则,暴力破解/密码喷射的告警研判,暴力破解/密码喷射的处置建议等几个方面阐述如何通过IDS/NDR,态势感知等流量平台的暴力破解/密码喷射类型的告警的线索,开展日常安全运营…