ndk使用流程
设置支持jni
1. 打开gradle.properties,添加:
android.useDeprecatedNdk=true
2. 打开local.properties,添加:
ndk.dir=C\:\\Users\\jetson\\AppData\\Local\\Android\\Sdk\\ndk\\22.0.7026061
3. 在app内的build.gradle,在android/defaultConfig下面添加ndk配置
ndk {
moduleName "songstudio"
}
注意:moduleName 表示编译出的so文件的名字
注意这句话是写在defaultConfig里面,不然就会报错了:
could not find method ndk() for arguments
4. 生成头文件
javac -encoding utf8 -h . Mp3EncoderTest.java
参考教程:https://www.jianshu.com/p/28d541d658db
Android studio使用git教程
步骤
1. VCS -> import into -> Create git
2. 文件夹右键 -> git -> add
3. VSC -> import into -> shared github
问题
登录不料
使用token登录方式:https://github.com/settings/tokens
参考教程:https://blog.csdn.net/qunqunstyle99/article/details/86665013
问题
1. ndk-build命令找不到
将C:\Users\jetson\AppData\Local\Android\Sdk\ndk\22.0.7026061\build(ndk-build命令所在目录)添加到环境变量中
2. 生成的app中找不到库
创建jniLibs文件夹,然后将ndk-build生成的libs目录的东西,拷贝到jniLibs中,即可
3. 使用javac生成头文件
javac -encoding utf8 -h . Mp3EncoderTest.java
4. 找不到undefined symbol: bcopy
在Application.mk文件中添加:
APP_CFLAGS += -DSTDC_HEADERS
5. 打印log
#include <android/log.h>
#define LOGI(...) __android_log_print(ANDROID_LOG_INFO, "xx", __VA_ARGS__)
LOGI("pcmFilePath = %s", pcmFilePath);
6. jni fopen文件permission deny
1. 如果只是读文件的话:
(1)在应用的清单文件中将 requestLegacyExternalStorage 设置为 true。
(2)请求 READ_EXTERNAL_STORAGE 权限。
2. 如果是写文件的话:
请将与文件相关联的文件描述符从基于 Java 或基于 Koltin 的代码传入原生代码。
7. 只编译x86的库
Application.mk文件添加:
APP_ABI := x86
8. Androidstudio中添加c++补全
右键文件夹,然后选link c++ project with gradle
9. error: undefined symbol: log2f
在Application.mk中添加:
APP_PLATFORM := android-28
10. avformat_open_input:Invalid data found when processing input
没有将需要的格式编译进来,进行完整编译之后,就可以了
11. 设置typora的代码宽度
(1)选择主题-> github的主题
(2)打开C:\Program Files\Typora\resources\app\style\themes\github.css文件
(3)修改max-width的大小
#write {
max-width: 1400px; // 这里修改1400px就会变大了
margin: 0 auto;
padding: 30px;
padding-bottom: 100px;
}
12. Android studio中不小心删错了文件
andorid studio,在相同的目录,新建一个相同名字的文件,然后打开,然后右键
选择local history -> show history 就可以显示之前版本了
13. 包含头文件
在mk文件中添加:
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/libcommon \
就可以直接用:
#include "xxx.h"了,不用根据文件夹了
14. No implementation found for
没有在java文件中添加:
static {
System.loadLibrary("songstudio");
}
15. av_packet_unref(&mpacket);和av_free的使用
av_packet_unref(&mpacket);可以多次使用
av_free函数只能使用一次,多次使用的话,会出现段错误
16. debug apk无法安装
adb install -t app-debug.apk
17. SL_RESULT_BUFFER_INSUFFICIENT
SLDataLocator_AndroidSimpleBufferQueue配置和 (*mAudioPlayerBufferQueue)->Enqueue的数目对不上
18. opensl的play函数出现段错误
play函数不应该退出,不然就会出现段错误。在最后面加个while循环。
19. typora使用公式
在偏好设置 -> Markdown -> 打开内联公式 -> 重启typora -> 输入$\subset$就会显示公式了
20. Ubuntu安装ssh
sudo apt-get install ssh
sudo systemctl start ssh
21. vscode配置ssh
只要安装ssh插件,然后按F1,搜索ssh,新添加ssh host,然后连接ssh,之后它就会自动在Ubuntu服务器上安装.vscode-server文件了
免密码登录:window上ssh-keygen.exe,拷贝C盘用户目录下的.ssh目录下的idrsa.pub中的内容,到Ubuntu主机的home/.ssh目录下的文件authorized_keys
网友评论