【问题标题】:Why install Android LatinIME gets Failure [INSTALL_FAILED_OLDER_SDK]为什么安装 Android LatinIME 会失败 [INSTALL_FAILED_OLDER_SDK]
【发布时间】:2011-05-27 06:48:35
【问题描述】:

我已经从GIT下载并编译了源代码,并成功运行了与代码一起编译的模拟器。

然后我设法使用 mmm android/packages/inputmethods/LationIME 来编译 LatinIME,
并使用adb install -r android/out/target/product/generic/system/app/LatinIME.apk,它安装得很好。

但这仅适用于我自己编译的 AVD,当我尝试通过相同的命令将 LatinIME.apk 复制的表单 android/out/target/product/generic/system/app/ 安装到另一个模拟器或真实手机时:adb install -r LatinIME.apk,我收到消息:

165 KB/s (568039 bytes in 3.343s)
pkg: /data/local/tmp/LatinIME.apk
Failure [INSTALL_FAILED_OLDER_SDK]

我用谷歌搜索了很多,并尝试了他们所说的:

  • 在 `LatinIME/AndroidManifest.xml' 文件中添加行 <uses-sdk android:MinSdkVersion="3">

  • 修改android/build/core/version_defaults.mk,将DEFAULT_APP_TARGET_SDK := $(PLATFORM_SDK_VERSION)这一行改为DEFAULT_APP_TARGET_SDK := 8

  • 我什至重新下载了源代码,第一次下载的是默认最新版本API级别10,第二次下载API级别9的代码,都无法编译可以安装在 API 级别 8 或 9 或 10 的其他模拟器中。

我想可能是因为我编译的SDK是AOSP版本所以无法安装 官方发布的SDK?我不太清楚区别。

有源码的朋友可以试试mmm android/packages/inputmethods/LationIME,看看生成的apk能否安装到官方SDK版本?

【问题讨论】:

  • 我可以下载源表单android.googlesource.com/platform/packages/inputmethods/… 来编译LatinIME.apk 吗?
  • @CelinHC 你可以试试看,因为这个问题是很久以前的问题了,也许latset版本可以单独编译,但是我知道的旧版本需要整个环境才能编译,因为它依赖于一些 NDK 部件。

标签: android sdk apk avd


【解决方案1】:

好的,我又来回答我自己的问题了,我不明白为什么我的问题总是很少有人回答。

但是我搜索了整个互联网并找到了答案,但幸运的是我看到了这个:

version_defaults.mk of API Key 7

我只是替换了我下载的代码树中的android/build/core/version_defaults.mk 并重新编译了模块,它工作了!

以为我不知道它是否适用于源代码中的所有模块,但我的 IME 运行良好。

【讨论】:

  • 你的问题不是通常的问题 :) 从来没有做过你在这里尝试过的事情......但是阅读除“listview 没有更新”或“帮助我并给予代码...”:D
  • 是因为原来的version_defaults.mk限制了从AOSP树编译出来的apk,使得它们无法安装在任何发布的SDK版本中,说是AOSP更新了所有的依赖可能会有一些差异时间。
  • @Aloong 我得到那个错误,但是当我反编译最终的 APK 时,没有 min/target 属性!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-04
  • 1970-01-01
  • 2016-05-11
相关资源
最近更新 更多