我有一个简单的Android项目,我用Android Studio 0.4.0创建 . 我使用Gradle 1.9和Gradle Android插件0.7 . 昨天我在我的gradle构建脚本中've added Jake Wharton' s ButterKnife library:
dependencies {
compile 'com.android.support:support-v4:19.0.0'
compile 'com.android.support:appcompat-v7:19.0.0'
// Butterknife
compile 'com.jakewharton:butterknife:4.0.1'
}
当我从Android Studio运行应用程序时,构建运行正常并在我的设备上正确执行 . 但是当我尝试(从命令行) gradle build
时,构建失败 . 这是我的lint报告的一部分:
InvalidPackage: Package not included in Android
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
/home/yami/.gradle/caches/modules-2/files-2.1/com.jakewharton/butterknife/4.0.1/f43b36925363701633d01adb8e54df7150397a78/butterknife-4.0.1.jar: Invalid package reference in library; not included in Android: javax.annotation.processing. Referenced from butterknife.internal.InjectViewProcessor.
也许我错过了一些东西,但是没有能够在终端块中构建项目的可能性为Android项目的CI .
任何帮助都会很棒 .
10 回答
加
到您的app \ build.gradle
将这些行添加到build.gradle文件中:
然后清理你的项目:D
随着 0.7.0 扩展了对Lint的支持,但是,它总是不能正常工作 . (例如,奶油刀库)
解决方案是禁用在发现的lint错误上的中止构建
我从https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7获取灵感
(实施:https://android.googlesource.com/platform/tools/base/+/e6a5b9c7c1bca4da402de442315b5ff1ada819c7/build-system/gradle/src/main/groovy/com/android/build/gradle/internal/model/DefaultAndroidProject.java)
(讨论:https://plus.google.com/+AndroidDevelopers/posts/ersS6fMLxw1)
And if you need to disable just particular Lint rule and keep the build failing on others, use this:
您可以从此处选择适当的选项
如果要避免使用“abortInError false”选项,请查看build / lint-results-release-fatal.html文件 . 这是lint检测到的错误 .
我希望这可以帮助别人!
如果
abortOnError false
无法解决您的问题,您可以试试这个 .在AndroidStudio版本0.51上出现相同的错误
构建工作正常并且突然,在仅更改版本代码值之后,我得到了与Lint相关的构建错误 .
试图更改
build.gradle
,清除AndroidStudio缓存并重启,但没有变化 .最后我回到了原始代码(导致错误),并从
AndroidManifest.xml
中删除了android:debuggable="false"
,导致构建成功 .我再次添加它仍然有效...不要问我为什么:S
至于我,这是你的问题的解决方案:
Better solution 正在解决您的代码中的问题,因为lint工具会检查您的Android项目源文件是否存在潜在错误,并针对正确性,安全性,性能,可用性,可访问性和国际化进行了优化改进 .
这个 problem most frequently occurring 时:
布局包括未解析的符号或缺少某些属性
其他结构问题(例如使用目标API版本不支持的已弃用元素或API调用)可能导致代码无法正常运行 .
在Android Studio中通过
Inspect Code
找到您的错误:Improve Your Code with Lint我在Android Studio中遇到了一些lint错误,这些错误仅在我生成签名的APK时发生 .
为避免这种情况,我将以下内容添加到
build.gradle
在Android Studio v1.2中,它会告诉您如何修复它: