鱼C论坛

 找回密码
 立即注册
查看: 2713|回复: 6

[已解决]如何将已有C++代码移植到Android Studio上

[复制链接]
发表于 2023-8-4 01:45:08 | 显示全部楼层
要将已有的C++代码移植到Android Studio上,您可以按照以下步骤操作:

1. 在Android Studio中创建一个新的C++项目。您已经完成了这一步,能够成功运行显示"Hello From C++"。
2. 将您的C++源代码文件复制到Android Studio项目的 app/src/main/cpp 目录下。
3. 在 app/src/main/cpp 目录下创建一个名为 CMakeLists.txt 的文件,用于配置C++编译。
4. 打开 CMakeLists.txt 文件,并添加以下内容:

  1. cmake_minimum_required(VERSION 3.4.1)

  2. # 添加您的源代码文件
  3. add_library( # 设置库的名称
  4.              native-lib

  5.              # 设置库的类型为共享库
  6.              SHARED

  7.              # 添加您的源代码文件
  8.              src/main/cpp/your_source_file.cpp )

  9. # 链接要使用的库
  10. target_link_libraries( # 指定要链接的库
  11.                        native-lib )
复制代码


请将 your_source_file.cpp 替换为您的源代码文件的实际名称。

5. 在 app/src/main/cpp 目录下创建一个名为 native-lib.cpp 的文件,用于实现JNI接口。

  1. #include <jni.h>

  2. extern "C" JNIEXPORT jstring JNICALL
  3. Java_com_example_your_package_name_MainActivity_stringFromJNI(
  4.         JNIEnv* env,
  5.         jobject /* this */) {
  6.     std::string hello = "Hello from C++";
  7.     return env->NewStringUTF(hello.c_str());
  8. }
复制代码


请将 com_example_your_package_name 替换为您的应用程序的包名。

6. 在 MainActivity.java 中添加以下代码,以调用JNI接口并显示C++代码的输出结果。

  1. public class MainActivity extends AppCompatActivity {

  2.     // 加载本地库
  3.     static {
  4.         System.loadLibrary("native-lib");
  5.     }

  6.     @Override
  7.     protected void onCreate(Bundle savedInstanceState) {
  8.         super.onCreate(savedInstanceState);
  9.         setContentView(R.layout.activity_main);

  10.         // 调用JNI接口
  11.         TextView tv = findViewById(R.id.sample_text);
  12.         tv.setText(stringFromJNI());
  13.     }

  14.     // 声明JNI接口
  15.     public native String stringFromJNI();
  16. }
复制代码


7. 构建并运行您的Android应用程序。现在,您的C++代码应该已经成功移植到Android Studio上,并且应用程序应该能够正常运行并显示从C++代码返回的字符串。

请注意,移植C++代码到Android Studio可能会涉及到其他依赖项和配置,具体取决于您的代码和项目要求。以上步骤提供了一个基本的框架,您可能需要根据您的实际情况进行调整。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-9-19 11:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表