Ошибка сборки 4.3 для Android 4.3

Я нашел те же ошибки, которые были размещены на других форумах, но ответа не найдено, чтобы исправить это.

Запуск на моем недавно установленном 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. Но он все еще не работает.

Кто-нибудь знает, как это исправить?

Спасибо

Ответ 1

Ошибки были устранены путем повторной загрузки исходного кода.

Итак, если кто-то из вас столкнулся с той же ошибкой, я бы предложил вам повторно загрузить источник.

Ошибка должна исчезнуть.

Ответ 2

В моем случае проблема была вызвана javadoc из OpenJDK7, когда я должен использовать один из JDK 6 (Oracle).

На данный момент JDK7 необходим для создания ведущей ветки Android и JDK6 для создания Gingerbread (2.3) через Kitkat (4.4.4).

Если у вас установлено несколько JDK, убедитесь, что вы выбрали правильный для java/javac/javadoc. Вы можете использовать следующие команды:

$ 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: 

Ответ 3

После расширенного поиска я наконец нашел источник этой ошибки здесь https://groups.google.com/forum/#!msg/android-building/Xw34n7PQJsA/kieneMNt4LkJ. Если повторная загрузка источника не работает, убедитесь, что java, javac и javadoc используют версию 1.6, а не 1.7. Очевидно, javadoc 1.7 имеет своего рода неудобство, вызванное процессом сборки Android AOSP. Это, в свою очередь, вызывает странные ошибки с помощью apicheck usaully this.

Ответ 4

Я мог бы исправить это, коснувшись файлов, чтобы восстановить их.

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

$ make

Ответ 5

Если вы изменили исходный код на Android, вам нужно будет выпустить "make update-api" перед тем, как "make otapackage" обновить изменения api, которые вы сделали

Ответ 6

Проблема заключается именно в javadoc, который равен 1.7, но что действительно неправильно, так это то, что после изменения его на 1.6 из oracle и "make clean" это не помогает. Извлечение и загрузка источников помогает. Я искал какую-то цель, например "make distclean" или "make mrproper", чтобы избежать перераспределения источников, которые требуют много времени. Я ничего не нашел.