Questions tagged «android-lint»

Android Lint是ADT中的工具,可扫描Android项目源中的潜在错误。

7
该Handler类应该是静态的,否则可能会发生泄漏:IncomingHandler
我正在开发带有服务的Android 2.3.3应用程序。我在服务内部拥有此功能,可与Main活动进行通信: public class UDPListenerService extends Service { private static final String TAG = "UDPListenerService"; //private ThreadGroup myThreads = new ThreadGroup("UDPListenerServiceWorker"); private UDPListenerThread myThread; /** * Handler to communicate from WorkerThread to service. */ private Handler mServiceHandler; // Used to receive messages from the Activity final Messenger inMessenger = new …

4
什么是“ android:allowBackup”?
由于新的ADT预览版(版本21) ,他们有一个新的皮棉警告,告诉我在清单文件,接下来的事情(在应用程序标签): 应该将android:allowBackup显式设置为true或false(默认情况下为true,这可能会对应用程序的数据产生一些安全隐患) 他们在官方网站上写道: 进行了两项新检查:必须明确确定您的应用是否允许备份以及标签检查。有一个用于设置库路径的新命令行标志。编辑时对增量皮棉分析的许多改进。 这是什么警告?什么是备份功能,如何使用? 另外,为什么警告告诉我它具有安全隐患?禁用此功能有哪些不利和好处? 清单备份有两个概念: “机器人:allowBackup ”允许备份和通过ADB恢复,如图所示在这里: 是否允许应用程序参与备份和还原基础结构。如果将此属性设置为false,则即使通过全系统备份也不会执行应用程序的备份或还原,否则将导致所有应用程序数据通过adb保存。此属性的默认值为true。 这被认为是安全问题,因为人们可以通过ADB备份您的应用程序,然后将您应用程序的私有数据存储到他们的PC中。 但是,我认为这不是问题,因为大多数用户不知道什么是adb,如果这样做,他们也将知道如何对设备进行root操作。仅当设备启用了调试功能时,ADB功能才起作用,并且需要用户启用它。 因此,只有将其设备连接到PC并启用调试功能的用户才会受到影响。如果他们的PC上有使用ADB工具的恶意应用程序,则可能会出现问题,因为该应用程序可以读取私有存储数据。 我认为Google应该只在开发人员类别中添加默认情况下禁用的功能,以允许通过ADB备份和还原应用程序。 “ android:backupAgent ”允许使用云的备份和还原功能,如此处和此处所示: 实现应用程序的备份代理的类的名称,它是BackupAgent的子类。该属性值应该是完全限定的类名称(例如“ com.example.project.MyBackupAgent”)。但是,作为简写形式,如果名称的第一个字符是句点(例如,“。MyBackupAgent”),则会将其附加到元素中指定的包名称中。没有默认值。必须指定名称。 这不是安全问题。

3
如何将baselineAligned设置为false,如何提高LinearLayout的性能?
我只是在xml中构建一些UI,Lint给了我一个警告,并说将android:baselineAligned设置为false以提高ListView的性能。 Lint更改的文档添加了此警告,说 布局性能:查找具有权重的LinearLayouts,应在其中设置android:baselineAligned =“ false”以获得更好的性能,并查找嵌套权重会导致性能问题的情况。 有人可以解释为什么这样做可以改善性能,特别是在涉及体重时?

13
Lint:如何忽略“ <key>不翻译成<language>”错误?
我无法编译/调试我们的Android应用,因为本地化文件还不够完善。 我的IDE的验证工具Lint创建错误,提示: newCardsOrderVals未翻译为ar,bg,ca,cs 使用Ant进行编译/安装/运行可以正常工作,但是我想使用自己的IDE来简化调试。 有没有办法关闭此特定检查,或者理想情况下使其成为警告而不是错误? 我知道在发布之前,我们确实需要正确处理本地化文件,但是由于屏幕本身经常被频繁修改,因此暂时还不是优先事项。

4
缺少对Firebase应用索引的支持(​​android lint)
在Android Studio上分析我的代码(“分析”&gt;“检查代码”)时,我收到此棉绒警告。 该应用无法通过Google搜索建立索引;考虑添加至少一个带有ACTION-VIEW意向填充器的Activity。有关更多详细信息,请参见问题说明。 这是什么警告,如何使我的应用可被Google搜索编入索引?对于SEO来说这听起来很重要,但我在Google上找不到任何详细信息。 我也想知道如何从android studio访问“问题说明”。 编辑: 旧的警告是“应用程序无法通过Google搜索建立索引”。新的警告是“缺少对Firebase App Indexing的支持”


11
避免Android Lint抱怨未翻译的字符串
是否可以指定value-* 目录中文件中的字符串不是故意翻译成其他语言?我有一堆所有语言都通用的字符串,不需要翻译,因此我已经unlocalized-strings.xml在values目录中创建了一个文件。要在整个项目上禁用此检查,我只想在某些XML文件中禁用它。 "title_widget_updater_service" is not translated in de, en, en-rUS, it Issue: Checks for incomplete translations where not all strings are translated Id: MissingTranslation If an application has more than one locale, then all the strings declared in one language should also be translated in all other languages. By default …


5
为什么0dp被认为是性能增强?
结合了备注和解决方案,在此问题末尾的答案已经填写完毕。 题 我四处搜寻,但没有找到任何能真正解释Android Lint和Eclipse提示为何建议使用替换掉部分layout_height和layout_width值的东西0dp。 例如,我ListView建议将其更改 之前 &lt;ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_weight="1"&gt; &lt;/ListView&gt; 后 &lt;ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"&gt; &lt;/ListView&gt; 同样,它建议对ListView项进行更改。这些更改前后的外观都相同,但是我有兴趣了解为什么这些是性能提升的原因。 有人对此有解释吗?如果有帮助,请使用进行总体布局ListView。 &lt;RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"&gt; &lt;ImageView android:id="@+id/logo_splash" android:layout_width="match_parent" android:layout_height="wrap_content"&gt; &lt;/ImageView&gt; &lt;LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:background="@color/background" android:layout_below="@id/logo_splash"&gt; &lt;ListView android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"&gt; &lt;/ListView&gt; &lt;TextView android:id="@android:id/empty" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/no_upcoming" /&gt; &lt;/LinearLayout&gt; &lt;/RelativeLayout&gt; …

4
我们如何配置Android Studio在每个版本上运行它的Lint?
曾几何时,尤其是在Eclipse地区,Lint会在每个版本上运行,因此,如果Lint检查失败,您会立即发现。对于Android Studio(在1.3版上进行了测试),Lint默认情况下不会在构建版本上运行。新手可能会犯错Lint会检查的错误,但是由于Lint并未真正运行,因此新人不会了解它们。 (IOW,如果Lint测试未在森林中运行,那么真的有Lint测试吗?) 此博客文章上的评论显示了如何使Lint作为构建的一部分运行: 编辑项目配置 在配置的“常规”选项卡中,向下滚动并折叠以打开“启动前”面板 在该面板中,lint为您的模块命名的“ Run Gradle Task”中添加一个步骤 但是,这将运行命令行Lint,从而导致将报告以XML和HTML格式写入硬盘。可以,但是让Android Studio运行其in-IDE Lint检查会更干净,因此结果显示在IDE面板中。 有没有一种方法可以设置项目构建以执行IDE中的Lint检查? 如果可以将其设置为仅运行Lint,而不是由“分析”&gt;“检查代码”进行的完整分析,则可以得到加分。虽然完整的分析有时很有用,但Lint的速度却足够慢,更不用说Android Studio执行的其他有用的分析(例如拼写检查)了。 虽然对于所有项目来说,设置此设置并不是一个好的计划(皮棉扫描速度很慢),但对于Android的新手来说,这可能是一个适当的举动。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.