我发现在其他论坛上发布了一些相同的错误,但尚未找到解决问题的答案。
在我新安装的Ubuntu 12.10上运行,
out/target/common/obj/PACKAGING/public_api.txt:22097: error 12: Class
android.telephony.gsm.SmsMessage changed static qualifier
prebuilts/sdk/api/18.txt:22054: error 9: Removed public constructor SmsMessage()
prebuilts/sdk/api/18.txt:22055: error 9: Removed public method
android.telephony.gsm.SmsMessage.calculateLength
prebuilts/sdk/api/18.txt:22056: error 9: Removed public method
android.telephony.gsm.SmsMessage.calculateLength
prebuilts/sdk/api/18.txt:22057: error 9: Removed public method
android.telephony.gsm.SmsMessage.createFromPdu
prebuilts/sdk/api/18.txt:22058: error 9: Removed public method
android.telephony.gsm.SmsMessage.getDisplayMessageBody
prebuilts/sdk/api/18.txt:22059: error 9: Removed public method
android.telephony.gsm.SmsMessage.getDisplayOriginatingAddress
prebuilts/sdk/api/18.txt:22060: error 9: Removed public method
android.telephony.gsm.SmsMessage.getEmailBody
prebuilts/sdk/api/18.txt:22061: error 9: Removed public method
android.telephony.gsm.SmsMessage.getEmailFrom
..
..
..
很明显,gsm.SmsMessage在构建环境中存在一些未知问题。
我试图将我的java版本从1.7切换到1.6。但它仍然无效。
有谁知道如何解决这个问题?
由于
答案 0 :(得分:16)
就我而言,问题是由OpenJDK7中的javadoc
导致的,当时我应该使用JDK6(Oracle)。
截至目前,需要JDK7来构建Android的主分支,JDK6需要通过Kitkat(4.4.4)构建Gingerbread(2.3)。
如果您有多个JDK,请确保为java / javac / javadoc选择正确的JDK。您可以使用以下命令:
$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config javadoc
选择java
的输出示例(上面的第一个命令):
There are 3 choices for the alternative java (providing /usr/bin/java). Selection Path Priority Status ------------------------------------------------------------ 0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 auto mode * 1 /usr/lib/jvm/java-6-oracle/jre/bin/java 1 manual mode 3 /usr/lib/jvm/java-7-oracle/jre/bin/java 2 manual mode Press enter to keep the current choice[*], or type selection number:
答案 1 :(得分:5)
经过广泛搜索后,我终于在https://groups.google.com/forum/#!msg/android-building/Xw34n7PQJsA/kieneMNt4LkJ找到了此错误的来源。如果重新下载源代码不起作用,请确保java,javac和javadoc使用的是版本1.6而不是1.7。显然javadoc 1.7有一些由Android AOSP构建过程触发的不稳定性。这反过来会导致这个问题出现奇怪的错误。
答案 2 :(得分:3)
我可以在触摸文件后重新修复它们。
$ touch frameworks/opt/telephony/src/java/android/telephony/gsm/SmsManager.java
$ touch frameworks/opt/telephony/src/java/android/telephony/gsm/SmsMessage.java
$ make
答案 3 :(得分:1)
通过重新下载源代码解决了错误。
因此,如果您遇到任何相同的错误,我建议您重新下载源代码。
错误应该消失了。
答案 4 :(得分:1)
如果您更改了Android中的源代码,则需要在“make otapackage”之前发出“make update-api”来更新您所做的api更改
答案 5 :(得分:1)
问题恰恰在于1.7的javadoc,但是真正错误的是在从oracle将其更改为1.6之后" make clean"它没有帮助。删除和下载源有帮助。我正在寻找像#34; make distclean"或者"制作mrproper"避免重新加载耗时的源。我一无所获。