2013-09-13 2 views
10

Я нашел те же ошибки, что и на других форумах, но ответа не найдено.Android 4.3 build error

работает на моем недавно установленной 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

Кто-нибудь? Я действительно не знаю, почему это произошло. – Sam

ответ

1

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

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

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

+0

У меня такая же проблема. Я попробовал первый ответ, который не сработал. Я попробую. – Jake

+1

Твой путь сработал! – Jake

+2

Возможно, это работало для оригинального плаката, но корень этой проблемы в большинстве случаев является несоответствием версии в версиях java, javac или javadoc.К сожалению, в документации Google не указано, что javadoc должен быть 1.6, то есть корень этой проблемы - спецификации api, созданные javadoc 1.7 и 1.8, отличаются от официальных версий, предоставленных источниками. Вот почему строительный процесс жалуется на обновленный api. – HappyCactus

3

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

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

$ make 
5

После подробного поиска я, наконец, нашел источник этой ошибки здесь 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 one.

+0

Слава богу, я нашел этот ответ! Благодаря ! – Jake

+0

О, нет .. не работал !! :( – Jake

+0

Может потребоваться полностью удалить все предыдущие выходные данные после переключения на Java 1.6. В противном случае поврежденные файлы не всегда перестраиваются. Помимо этого я не думаю, что могу помочь здесь. Существуют различные форумы поддержки, которые могут быть полезны. возможно, что-то еще странное в отношении вашей установки или кода. – wheredidthatnamecomefrom

13

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

На данный момент JDK7 необходим для создания главной ветки Android и JDK6 для создания пряников (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: 
+0

Ответ Джона также поможет. –

1

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

0

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