上传文件至 操作文档
commit
2fe64895c6
|
@ -0,0 +1,76 @@
|
||||||
|
Android JNI Demo 操作文档
|
||||||
|
本应用程序演示了Android中JNI的基本使用,实现了以下功能:
|
||||||
|
1. 页面间的按钮跳转
|
||||||
|
2. 通过JNI显示来自C++的字符串
|
||||||
|
3. 错误处理和日志记录
|
||||||
|
|
||||||
|
一、项目结构
|
||||||
|
app/
|
||||||
|
├── src/
|
||||||
|
│ ├── main/
|
||||||
|
│ │ ├── java/com/example/jnidemo/
|
||||||
|
│ │ │ ├── MainActivity.java # 主页面活动
|
||||||
|
│ │ │ └── SecondActivity.java # 第二页面活动
|
||||||
|
│ │ ├── cpp/
|
||||||
|
│ │ │ └── native-lib.cpp # JNI原生代码
|
||||||
|
│ │ ├── res/layout/
|
||||||
|
│ │ │ ├── activity_main.xml # 主页面布局
|
||||||
|
│ │ │ └── activity_second.xml # 第二页面布局
|
||||||
|
│ │ └── AndroidManifest.xml
|
||||||
|
│ └── CMakeLists.txt # CMake构建配置
|
||||||
|
└── build.gradle # Gradle构建配置
|
||||||
|
|
||||||
|
二、主要代码说明
|
||||||
|
1. MainActivity.java
|
||||||
|
实现主页面按钮点击事件
|
||||||
|
使用Intent跳转到SecondActivity
|
||||||
|
|
||||||
|
2. SecondActivity.java
|
||||||
|
加载native-lib原生库
|
||||||
|
通过JNI调用获取字符串
|
||||||
|
在TextView中显示JNI返回的字符串
|
||||||
|
|
||||||
|
3. nativelib.cpp
|
||||||
|
实现JNI原生方法
|
||||||
|
返回UTF8编码的字符串
|
||||||
|
包含错误处理和日志记录
|
||||||
|
|
||||||
|
三、运行步骤
|
||||||
|
1. 环境准备:
|
||||||
|
安装Android Studio
|
||||||
|
安装Android SDK
|
||||||
|
安装NDK和CMake
|
||||||
|
|
||||||
|
2. 打开项目:
|
||||||
|
启动Android Studio
|
||||||
|
选择"Open an existing Android Studio project"
|
||||||
|
导航到项目目录并打开
|
||||||
|
|
||||||
|
3. 构建项目:
|
||||||
|
等待Gradle同步完成
|
||||||
|
点击"Build > Make Project"确保项目能够正常构建
|
||||||
|
|
||||||
|
4. 运行应用:
|
||||||
|
连接Android设备或启动模拟器
|
||||||
|
点击工具栏的"Run"按钮(▶️)
|
||||||
|
选择目标设备并确认运行
|
||||||
|
|
||||||
|
5. 测试功能:
|
||||||
|
应用启动后显示主页面
|
||||||
|
点击"GO TO SECOND PAGE"按钮
|
||||||
|
第二页面将显示来自JNI的中文字符串
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
四、故障排除
|
||||||
|
如果应用崩溃,请检查以下内容:
|
||||||
|
1. Logcat中查看详细错误信息(过滤标签:"NativeLib"和"SecondActivity")
|
||||||
|
2. 确保NDK和CMake正确安装
|
||||||
|
3. 检查Gradle同步是否成功
|
||||||
|
4. 确保设备支持的ABI与项目配置匹配
|
||||||
|
|
||||||
|
五、注意事项
|
||||||
|
1. 项目使用CMake进行原生代码构建
|
||||||
|
2. JNI方法名必须严格匹配Java代码中的native方法声明
|
||||||
|
3. 字符串使用UTF8编码以支持中文显示
|
||||||
|
|
Loading…
Reference in New Issue