Android studio下编译connectbot
1、下载connectbot源码
12
2、打开Android studio,“import project”,会新建一个目录如connectbot1
3、下载后编译失败,提示下载NDK,用于编译connectbot中的c源码
Error:Execution failed for task ':app:compileDebugNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.
(On Windows, make sure you escape backslashes, e.g. C:\\ndk rather than C:\ndk)
4、下载NDK后,解压到c:\ndk目录,配置local.properties,添加"ndk.dir=c\:\\ndk",重新编译提示错误:
make.exe: *** No rule to make target `D:\src\connectbot1\app\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/app/D_\src\connectbot1\app\src\main\jni\Exec', needed by `D:\src\connectbot1\app\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/app/D_\src\connectbot1\app\src\main\jni\Exec\com_google_ase_Exec.o'. Stop.
这是NDK在Windows下一个bug,当只编译一个文件时出现,解决方法就是再添加一个空的文件(如util.c)即可。
在APP-C-EXEC目录下加一个空文件,继续编译,产生如下错误:
Error:(95) undefined reference to `__android_log_print'
解决方法:在build.gradle(moudle)的defaultConfig中加入如下语句
ndk {
moduleName "app"
ldLibs "log"
}
原因如下:
If you use Android Studio and gradle, it ignores Android.mk. Add this to your build.gradle file:
android {
defaultConfig {
ndk {
moduleName "your_module_name"
ldLibs "log"
}
}
}
继续编译,成功!
在生成APK时会产生一个错误“MissingTranslation”,原因是多语言转换时并没有翻译所有的字符串,可以在“setting”-“inspections”取消“incomplete translation”选项,将strings.xml中的resources语句改为,clean后重新编译即可:
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2" xmlns:tools="http://schemas.android.com/tools" tools:ignore="MissingTranslation">
发表评论