环境搭建之windows Android studio ndk环

2021-03-28  本文已影响0人  _jetson_

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
上一篇 下一篇

猜你喜欢

热点阅读