問題タブ [android-lint]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Lintは、マークされているにもかかわらず、プロジェクトエラーを検出しません。
最近、developers.android.comでCustomViewチュートリアルを確認しました。コードを自分のプロジェクトに適合させているときに、クラスエディターでエラーが行ごとにマークされていても、完全に進行していることに気付きました。 lintによって検出されません。
これまでのところ、これと、単に「パースペクティブに名前を付けて保存」してEclipseを再起動することを提案する記事を試しました。
これは簡単に修正できる問題だと思います。私自身、無意識のうちに引き起こした可能性があります...他のプロジェクトのエラーはLintに問題なく表示されるためです。
おそらく、この質問で説明されているように、lint.xmlを見つける必要があります-?-それがどこにあるのか考えてみてください。
android - 0dp がパフォーマンスの向上と見なされるのはなぜですか?
この質問の最後に、コメントと解決策を組み合わせた回答が記入されています。
質問
私は周りを検索しましたが、Android LintといくつかのEclipseのヒントがいくつかのlayout_height
と のlayout_width
値を0dp
.
たとえば、ListView
変更が提案された
前
後
同様に、ListView itemへの変更を提案しました。これらはすべて変更の前後で同じように見えますが、なぜこれらがパフォーマンス ブースターなのかを理解したいと思っています。
誰にも理由の説明がありますか?それが役立つ場合、ここに を使用した一般的なレイアウトがありListView
ます。
答え
実際には回答と以下の参照リンクの組み合わせであるため、ここに回答を入れています。私が何か間違っている場合は、私に知らせてください。
から0dip layout_height または layouth_width のトリックは何ですか?
幅と高さで機能する 3 つの一般的なレイアウト属性があります。
android:layout_height
android:layout_width
android:layout_weight
aLinearLayout
がverticalの場合、 は子s ( ) の高さlayout_weight
に影響します。を に設定すると、この属性が無視されます。View
ListView
layout_height
0dp
例
aLinearLayout
がhorizontalの場合、 は子s ( ) の幅layout_weight
に影響します。を に設定すると、この属性が無視されます。View
ListView
layout_width
0dp
例
この属性を無視する理由は、無視しないと、より多くの CPU 時間を使用するレイアウトの計算に使用されるためです。
さらに、これにより、3 つの属性を組み合わせて使用する場合にレイアウトがどのように見えるかについての混乱を防ぐことができます。これは、以下の回答で@android 開発者によって強調されています。
また、Android LintとEclipseはどちらも を使用すると言っています0dip
。0dip
以下の回答から、0dp
、 、 などを使用できます0px
。ゼロのサイズはどの単位でも同じだからです。
ListView で wrap_content を避ける
getView(...)
がなぜ私のように何度も呼び出されるのか疑問に思ったことがあるなら、それは に関連していることがわかりwrap_content
ます。
上記で使用してwrap_content
いたように使用すると、すべての子View
が測定され、CPU 時間がさらに長くなります。この測定により、あなたgetView(...)
が呼び出されます。これをテストしたところ、呼び出される回数getView(...)
が劇的に減少しました。
私がwrap_content
2つListView
のsで使用していたとき、1つのgetView(...)
行ごとに3回、もう1つの行ListView
ごとに4回呼び出されました。
これを推奨の に変更すると、0dp
行getView(...)
ごとに 1 回だけ呼び出されました。これはかなりの改善ですwrap_content
がListView
、0dp
.
ただし、このため、の提案により0dp
パフォーマンスが大幅に向上します。
android - 部分的な翻訳の Android Lint の「MissingTranslation」チェックを無視する
私のアプリには、完全に翻訳された言語セットと、いくつかの文字列のみが翻訳された別の言語セットがあります。
完全に翻訳された言語については、MissingTranslations について Lint に警告してもらいたいです。
部分的な翻訳がある言語については、Lint で MissingTranslations を無視したいと考えています。
これらの両方の目標を同時に達成する方法がわかりません。
android - Android Eclipse Lint API チェック
Building multi-SDK Android apps in Eclipse without compile-time checks の質問に対する正しい答えのように見えるものについて、PT に感謝します。ただし、 @TargetApi() アノテーションを推奨どおりに使用しようとすると、構文エラーが発生します。
@TargetApi 行がコードの途中にある場合、場所 3 に示すように 2 つの構文エラーが生成されます。
示されているように、ステートメント@TargetApi
の前または後に行があるかどうかに関係なく、エラーが存在します。@TargetApi() を正しく機能させるために、記事http://tools.android.com/recent/lintapicheckif
に記載されていない前提条件 (インポート) またはその他の考慮事項はありますか?Lint API Check
--- 2012 年 9 月 3 日を編集 ---
@TargetApi アノテーションをクラス定義の前 (位置 1 として表示) またはメソッド定義の前 (位置 2 として表示、@Override アノテーションの前または後) に移動すると、さまざまなエラーが発生します。
--- 2012 年 9 月 4 日を編集 ---
完全なソースコードは次のとおりです。
android - これを解決する方法:'Androidlintの実行'の問題
プロジェクトのどのアクティビティでも、変更を加えてそのアクティビティを保存すると、「Androidlintの実行中に問題が発生しました」というメッセージが表示されます。
これは私のエラーログです:
これを解決する方法がわかりません。
android - AndroidLintが翻訳されていない文字列について文句を言うのを避ける
ディレクトリ内のファイル内の文字列value-*
が意図的に他の言語に翻訳されないように指定することは可能ですか?すべての言語に共通で翻訳の必要がない文字列がたくさんあるので、unlocalized-strings.xml
ディレクトリ内にファイルを作成しましたvalues
。AndroidLintを実行して問題をチェックすると、一部の翻訳が欠落していると表示され続けます。プロジェクト全体でこのチェックを無効にするには、一部のXMLファイルでのみこのチェックを無効にします。それは可能ですか?
ローカライズされていない文字列のこの領域をどのように定義できますか?
android - 「android:allowBackup」とは何ですか?
新しい ADT プレビュー バージョン (バージョン 21)以降、マニフェスト ファイル (アプリケーション タグ内) に次のことを知らせる新しい lint 警告があります。
android:allowBackup を明示的に true または false に設定する必要があります (デフォルトでは true であり、アプリケーションのデータのセキュリティに影響を与える可能性があります)。
公式ウェブサイトでは、彼らは次のように書いています。
いくつかの新しいチェック: アプリがバックアップを許可するかどうかを明示的に決定する必要があり、ラベル チェックがあります。ライブラリ パスを設定するための新しいコマンド ライン フラグがあります。編集中のインクリメンタル lint 分析に対する多くの改善。
この警告は何ですか? バックアップ機能とは何ですか? また、どのように使用しますか?
また、セキュリティに影響があると警告が表示されるのはなぜですか? この機能を無効にすることの欠点と利点は何ですか?
マニフェストのバックアップには 2 つの概念があります。
- 「android: allowBackup」では、次のように、adb 経由でバックアップと復元を行うことができます。
アプリケーションがバックアップおよび復元インフラストラクチャに参加できるようにするかどうか。この属性が false に設定されている場合、アプリケーションのすべてのデータが adb 経由で保存される完全なシステム バックアップであっても、アプリケーションのバックアップまたは復元は実行されません。この属性のデフォルト値は true です。
人々がADB経由でアプリをバックアップし、アプリのプライベート データを自分の PC に取り込む可能性があるため、これはセキュリティ上の問題と見なされます。
ただし、ほとんどのユーザーはadbが何であるかを知らないため、それは問題ではないと思います。もし知っていれば、デバイスをルート化する方法も知っているでしょう。ADB 機能は、デバイスでデバッグ機能が有効になっている場合にのみ機能し、これにはユーザーが有効にする必要があります。
そのため、デバイスを PC に接続し、デバッグ機能を有効にしているユーザーのみが影響を受けます。PC に ADB ツールを使用する悪意のあるアプリがある場合、アプリがプライベート ストレージ データを読み取る可能性があるため、これは問題になる可能性があります。
Google は、デフォルトで無効になっている機能を開発者カテゴリに追加して、ADB を介したアプリのバックアップと復元を許可する必要があると思います。
BackupAgent のサブクラスである、アプリケーションのバックアップ エージェントを実装するクラスの名前。属性値は、完全修飾クラス名 (「com.example.project.MyBackupAgent」など) である必要があります。ただし、省略形として、名前の最初の文字がピリオド (「.MyBackupAgent」など) の場合、要素で指定されたパッケージ名に追加されます。デフォルトはありません。名前を指定する必要があります。
これはセキュリティ上の問題ではありません。
android - JenkinsLintプラグインが結果を取得しない
Android Lintプラグインプラグインをjenkinsにインストールし、Androidプロジェクトビルド(mavenでビルド)でアクティブ化しました。次に、コマンドを使用してビルド後のアクションとして「executeshell」を追加しました
説明したように。lint-results.xmlファイルはルートワークスペースフォルダーに作成され、結果が含まれています。しかし、どういうわけか、プラグインは結果を取得してどこにも表示しません。
結果のxmlファイルに別のファイル名と場所を構成しようとしましたが、それは役に立たなかったようです。
何がうまくいかなかったのでしょうか?
android - Android: eclipse res/values で引き続き表示される警告を修正
res/values-folder
値が使用されていない場所があり、その結果、それを知らせる警告があったため、を修正しました。
未使用のものを「クリーニング」したので、警告はまだ表示されています。最初にプロジェクトを数回再構築し、Eclipse を再起動して、最後に PC を再起動しましたが、何も影響していないようです。
たとえば、私のcolors.xml
ファイル
ご覧のとおり、「背景」という値はもうありません。値「黒」が使用されていないと主張する他の警告と同じこと、およびstrings.xmlの約20の値について同じこと。これを修正するトリックはありますか?
android - 修正後、Eclipseエラーマークが消えない
私はEclipseJunoでAndroidアプリケーションを開発しており、MACOSLionを使用しています。xmlファイルのエラーを修正しても、エラーマークが消えず、修正してもコードをコンパイルできません。[ウィンドウ]->[ビューの表示]->[問題]から削除しようとしましたが、コードをコンパイルするとエラーが返されました。私がそれを解決するために考え出した唯一の方法は、ファイル内のすべてのコンテンツをトリミングし、エラーなしでxmlを保存してから、同じコードをxmlファイル内に再度貼り付けることです。エラーは、そこに何もなかったかのように消えます。なぜそれが起こるのですか?