Android Studio

JNI

Example仓库

创建C++ Native项目

添加第三方so

第三方so放置的路径为:app/src/main/jniLibs/${ABI} 其中ABI主要为arm64-v8aarmeabi-v7ax86x86_64

NDK安装

修改CMakeLists.txt

如果遇到cmake版本过低的情况,可以修改app/build.gradle.kts中cmake的要求的版本。

CMakeLists.txtcpp位置在app/src/main/cpp中,按需修改。

logcat

ctrl+space:打开过滤器提示

Problems

gradle/plugin下载问题

可以去download里面查看一下,部分域名(eg:dl.google.com、repo.maven.apache.org、plugins.gradle.org等)反而通过代理无法访问。

libOpenCL.so打不开

修改app/src/main/AndroidManifest.xml添加对native库的支持uses-native-library

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <application ...>
        <uses-native-library android:name="libOpenCL.so" android:required="false" />
    </application>
</manifest>

external storage没有权限

修改app/src/main/AndroidManifest.xml添加uses-permission

<?xml version="1.0" encoding="utf-8"?>
<manifest ...>
    <application ...>
	    ...
    </application>
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
</manifest>

profileable

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >
    <application ... >
        <profileable android:shell="true"/>
        ...
    </application>
    ...
</manifest>