主页 > 其他 > Android studio下编译connectbot

Android studio下编译connectbot

2015年4月21日 Android studio下编译connectbot无评论 阅读: 11,575 次

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">

发表评论

新用户的评论需审核后才会显示;

电子邮件地址不会被公开;
必填项已用*标注