Используйте Xlint: устаревший с Android - PullRequest
13 голосов
/ 07 октября 2011

Таким образом, я почти всегда получаю такое сообщение, когда собираю свое приложение для Android:

[javac] Note: /home/kurtis/sandbox/udj/androidApp/src/org/klnusbaum/udj/PlaylistFragment.java uses or overrides a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.

Как перекомпилировать эту опцию?Нужно ли что-то редактировать в моем build.xml?

Ответы [ 5 ]

23 голосов
/ 08 мая 2012

Эти свойства также можно определить в командной строке Ant, избегая редактирования:

ant "-Djava.compilerargs=-Xlint:unchecked -Xlint:deprecation" debug

Чтобы включить все предупреждения Lint:

ant -Djava.compilerargs=-Xlint debug

14 голосов
/ 22 ноября 2012

Еще проще и без необходимости копировать полную цель javac: поместите следующую строку в файл ant.properties:

java.compilerargs=-Xlint:unchecked

Таким образом, он просто переопределяет java.compilerargs из конфигурации сборки Android SDK по умолчанию. (Вы можете сами убедиться, что он пуст по умолчанию, кстати). Нет проблем с обновлением SDK, которое могло бы изменить цель javac по умолчанию без уведомления вашего проекта.

Просто более детальный способ сделать это! :)

11 голосов
/ 21 октября 2011

Да, согласно приведенному ниже утверждению в файле build.xml, если вы хотите ...

         - Customize only one target:
             - copy/paste the target into this file, *before* the
               <setup/> task.
             - customize it to your needs.

Это значит:

  1. Перейдите в файл $ ANDROID_SDK_ROOT / tools / ant / main_rules.xml и скопируйте цель «compile».

  2. Вставьте его в файл build.xml перед заданием .

  3. Затем добавьте в задачу следующий элемент:

    <compilerarg value="-Xlint:deprecation"/>
    
  4. Аналогично, вы можете добавить другие опции компилятора, например, для непроверенных операций:

    <compilerarg value="-Xlint:unchecked"/>
    
2 голосов
/ 04 февраля 2012

Похоже, вы должны просто указать опцию в build.properties или ant.properties в корне папки вашего проекта.Я попробовал это, и это не сработало.Я хотел избежать редактирования моего build.xml файла, так как это добавляет сложность позже, если вам нужно обновить ваш проект.Однако я не смог найти способ обойти это.Однако вместо того, чтобы копировать целую цель compile, я добавил:

<property name="java.compilerargs" value="-Xlint:unchecked" />

непосредственно перед строкой import в нижней части файла.

0 голосов
/ 19 сентября 2018

Если вы хотите иметь хороший конвейер CI + CD и заботитесь о качестве своего кода, хороший способ показать больше информации о жалобах на lint - добавить ее в свой топ / root gradle.build:

.
subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs += [
        '-Xlint:unchecked', // Shows information about unchecked or unsafe operations.
        '-Xlint:deprecation', // Shows information about deprecated members.
      ]
    }
  }
}

или

subprojects {
  gradle.projectsEvaluated {
    tasks.withType(JavaCompile) {
      options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }
  }
}

Если вы хотите добавить только одну опцию (вы обычно добавляете больше), внутри задачи JavaCompile вам просто нужно добавить:

options.compilerArgs << "-Xlint:unchecked"

Это 2018 год, и вы можете положиться на Gradle, чтобы настроить это. Я добавил только два параметра аргумента компилятора, но их гораздо больше. Вы можете найти более подробную информацию здесь и здесь .

...