TravisCI Android 构建仅在 CI 而非本地失败
TravisCI Android build fails only on CI not locally
我遇到了一个奇怪的错误,找不到解决方案:
* What went wrong:
Execution failed for task ':app:compileDebugAndroidTestGroovy'.
> Unable to load class de.rheinfabrik.mvvm_example.activities.DetailsActivity due to missing dependency android/support/v4/view/LayoutInflaterFactory
但这是不可能的。这个项目在本地工作。也有依赖关系。
这是我的.travis.yml
language: android
jdk: oraclejdk8
env:
matrix:
- ANDROID_TARGET=android-22 ANDROID_ABI=armeabi-v7a
global:
- TERM=dumb
android:
components:
- build-tools-21.1.2
- android-22
- sys-img-armeabi-v7a-android-22
- extra
# Emulator Management: Create, Start and Wait
before_script:
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
script: cd MVVM-Example && ./gradlew app:connectAndroidTest --stacktrace -PdisablePreDex
有人知道为什么缺少依赖项 LayoutInflaterFactory 吗?
尝试
- build-tools-22.0.1
http://developer.android.com/tools/revisions/build-tools.html
Build Tools, Revision 22.0.0 (March 2015) Added support for Android
5.1 (API level 22).
我认为是 connectedAndroidTest.
Update,尝试获取最新的工具版本,Travis-ci 恢复了最后一次 VM 更新,祝你好运,如果这不起作用,我不不知道另一个可能的原因:
language: android
android:
components:
- platform-tool
- tool
- android-22
- build-tools-22.0.1
- extra-android-m2repository
- extra-google-m2repository
- sys-img-armeabi-v7a-android-22
Update2:我分叉了你的项目,尝试了我的建议,但没有成功。但我关注了关于添加
的讨论
retrolambda {
jvmArgs '-noverify'
}
正如您已经做过的那样。还有this variant,我没看就急忙找到解决方案并开始工作:)
script:
- cd MVVM-Example
- ./gradlew prepareDebugDependencies
- ./gradlew assembleDebug # you can run clean before assemble
- ./gradlew app:connectedAndroidTest --info
我不熟悉这个 retrolambda 的东西,请解释其他的解决方案,如果它适合你,我认为这是一个简单的 travis 问题。
我遇到了一个奇怪的错误,找不到解决方案:
* What went wrong:
Execution failed for task ':app:compileDebugAndroidTestGroovy'.
> Unable to load class de.rheinfabrik.mvvm_example.activities.DetailsActivity due to missing dependency android/support/v4/view/LayoutInflaterFactory
但这是不可能的。这个项目在本地工作。也有依赖关系。
这是我的.travis.yml
language: android
jdk: oraclejdk8
env:
matrix:
- ANDROID_TARGET=android-22 ANDROID_ABI=armeabi-v7a
global:
- TERM=dumb
android:
components:
- build-tools-21.1.2
- android-22
- sys-img-armeabi-v7a-android-22
- extra
# Emulator Management: Create, Start and Wait
before_script:
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
- android-wait-for-emulator
- adb shell input keyevent 82 &
script: cd MVVM-Example && ./gradlew app:connectAndroidTest --stacktrace -PdisablePreDex
有人知道为什么缺少依赖项 LayoutInflaterFactory 吗?
尝试
- build-tools-22.0.1
http://developer.android.com/tools/revisions/build-tools.html
Build Tools, Revision 22.0.0 (March 2015) Added support for Android 5.1 (API level 22).
我认为是 connectedAndroidTest.
Update,尝试获取最新的工具版本,Travis-ci 恢复了最后一次 VM 更新,祝你好运,如果这不起作用,我不不知道另一个可能的原因:
language: android
android:
components:
- platform-tool
- tool
- android-22
- build-tools-22.0.1
- extra-android-m2repository
- extra-google-m2repository
- sys-img-armeabi-v7a-android-22
Update2:我分叉了你的项目,尝试了我的建议,但没有成功。但我关注了关于添加
的讨论retrolambda {
jvmArgs '-noverify'
}
正如您已经做过的那样。还有this variant,我没看就急忙找到解决方案并开始工作:)
script:
- cd MVVM-Example
- ./gradlew prepareDebugDependencies
- ./gradlew assembleDebug # you can run clean before assemble
- ./gradlew app:connectedAndroidTest --info
我不熟悉这个 retrolambda 的东西,请解释其他的解决方案,如果它适合你,我认为这是一个简单的 travis 问题。