11

I found some same errors posted on other forums but no answer found yet for fixing this.

Running on my newly installed 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
..
..
..

It's obviously that the gsm.SmsMessage has some unknown issue with the building environment.

I tried to switch my java version from 1.7 to 1.6. But it still does not work.

Does anyone know how to fix this?

Thanks

4

6 回答 6

17

就我而言,问题是由javadocOpenJDK7 引起的,当时我应该使用 JDK6 (Oracle)。

截至目前,构建Android的master分支需要JDK7,通过Kitkat(4.4.4)构建Gingerbread(2.3)需要JDK6。

如果您有多个 JDK,请确保为 java/javac/javadoc 选择正确的一个。您可以使用以下命令:

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac
$ sudo update-alternatives --config javadoc

选择的输出示例java(上面的第一个命令):

替代 java 有 3 种选择(提供 /usr/bin/java)。
  选择路径优先状态
-------------------------------------------------- ----------
  0 /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java 1051 自动模式
* 1 /usr/lib/jvm/java-6-oracle/jre/bin/java 1 手动模式
  3 /usr/lib/jvm/java-7-oracle/jre/bin/java 2 手动模式
按回车键保留当前选择[*],或输入选择编号:
于 2014-10-13T20:52:15.657 回答
5

经过广泛搜索后,我终于在这里找到了此错误的来源https://groups.google.com/forum/#!msg/android-building/Xw34n7PQJsA/kieneMNt4LkJ。如果重新下载源代码对您不起作用,请确保 java、javac 和 javadoc 使用的是 1.6 版而不是 1.7 版。显然 javadoc 1.7 有某种由 android AOSP 构建过程触发的不稳定因素。这反过来又会导致 apicheck 出现奇怪的错误。

于 2014-03-24T14:31:05.847 回答
3

我可以在触摸文件以重建它们后修复它。

$ touch frameworks/opt/telephony/src/java/android/telephony/gsm/SmsManager.java
$ touch frameworks/opt/telephony/src/java/android/telephony/gsm/SmsMessage.java

$ make
于 2013-11-19T02:34:32.423 回答
1

If you have changed the source code in Android, you will need to issue "make update-api" before "make otapackage" to update api changes that you have made

于 2014-10-23T03:15:26.953 回答
1

通过重新下载源代码解决了错误。

所以如果你们中的任何人遇到同样的错误,我建议你们重新下载源代码。

错误应该消失了。

于 2013-09-21T14:59:22.517 回答
1

问题正是 javadoc 是 1.7,但真正错误的是,在从 oracle 将其更改为 1.6 并“make clean”后它没有帮助。删除和下载资源会有所帮助。我一直在寻找一些像“make distclean”或“make mrproper”这样的目标,以避免重新下载非常耗时的源。我什么也没找到。

于 2015-07-19T21:37:20.407 回答