【发布时间】:2016-11-26 19:32:11
【问题描述】:
我正在尝试从源代码编译 android-6.0.1 并在 Android Studio 中使用已编译的 SDK。为了编译 SDK,我尝试了以下命令:
$ lunch sdk-eng
$ make sdk
也试过了:
$ lunch sdk-eng
$ make PRODUCT-sdk-sdk showcommands
编译结果0错误。
为了在 Android Studio 中添加 SDK,我检查了关于如何更改 SDK 路径的 SO questions。路径更改后我面临问题。我编译的 SDK 的文件夹有名为 android-6.0.1 的关键文件夹,例如
platforms/android-6.0.1
build-tools/android-6.0.1
SDK里面的完整文件夹是:
add-ons build-tools docs documentation.html extras platforms platform-tools RELEASE_NOTES.html samples system-images tests
编译后的 SDK 适用于 API 版本 23。
以下是我目前尝试在 Android Studio(版本 2.1.2)中添加编译后的 SDK 的步骤
1) 更改 sdk 路径 -> Gradle 同步开始 ->
(记住 sdk 文件夹确实有一个构建工具文件夹)
我的应用程序build.gradle 包含
android {
compileSdkVersion 23
buildToolsVersion "23.0.0"
defaultConfig {
applicationId "com.example.sdktest"
minSdkVersion 22
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
2) build.gradle 不允许像 6.0.1 这样的字符串作为平台名称,所以我尝试重命名相关文件夹
- platforms/android-6.0.1 -->platforms/android-23
- build-tools/android-6.0.1 --> build-tools/23.0.0
- system-images/android-6.0.1 --> system-images/android-23
修改build-tools/23.0.0/source.properties 以包含Pkg.Revision=23.0.0
我比较了 meld 中的build-tools 文件夹(左边是新编译的 SDK;文件夹层次结构是相同的,虽然我还没有检查所有差异):
[更新]
我尝试按照 Android Studio 提示安装构建工具版本 23.0.0 和 com.android.support:appcompat-v7:23.1.1 -> gradle sync 再次启动,并在日志中打印以下内容(然后仍然卡住):
build-tools/23.0.0/aapt: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
我尝试安装包lib32z1,但没有解决问题。有没有人尝试在 Debian jessie(64 位)上修复它?
【问题讨论】:
-
“所以我尝试重命名相关文件夹” 不需要这样做。一般步骤是: 1) 在AS 中更改SDK 路径,到
Project Structure -> SDK Location并指向编译好的SDKout/host/linux-x86/sdk/android-sdk_eng.xxx_linux-x86; 2) 按照 IDE 提示安装步骤 1 中提到的构建工具。 -
您似乎处于正确的条件来检查the solution 以解决您的一个相当古老的问题。请记住,通过接受有用的答案,您向未来的问题寻求者表明答案是正确的,从而帮助他们更快地解决问题。
标签: android android-studio sdk android-source