gpt4 book ai didi

gradle - 使用 Robolectric 问题在 Android Studio 中进行 Android 测试

转载 作者:行者123 更新时间:2023-12-01 15:06:13 25 4
gpt4 key购买 nike

首先,我想声明我对 Android 中缺乏适当的测试基础设施感到沮丧……或者我是智障,我不知道……
我最终设法设置了 android-test-plugin我为一个事件编写了几个测试,该事件在其布局中包含一个 CustomMapFragment,这是我编写的一个扩展 SupportMapFragment 的类。
我所有的测试都尝试使用以下方法获取此事件的实例:

activity = Robolectric.buildActivity(MyActivity.class).create().get();

失败:

java.lang.NoClassDefFoundError: com/google/android/gms/maps/GoogleMap$OnInfoWindowClickListener

在事件的setContentView

事件的 xml 如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyActivity">

<fragment
android:id="@+id/customMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.myproject.CustomMapFragment"/>
</RelativeLayout>

是否有解决方法/解决方案?任何帮助将不胜感激。

最佳答案

我有临时解决方案。问题似乎是 android-test-plugin 无法读取 aar 文件。我的解决方案是向 jar 文件添加一个依赖项,而不是只添加到 testCompile,就像这样

testCompile files('YOUR_ANDROID_SDK_FOLDER/extras/google/google_play_services/libproject/google-play-services_lib/libs/google-play-services.jar')

像这样我可以运行一个简单的测试,例如创建一个 LatLng 并检查它是否不为空,没有错误。希望对您有所帮助。

编辑

感谢 github 上的 SuperJugy,一个更好的解决方案是在此提交中应用修复 https://github.com/SuperJugy/gradle-android-test-plugin/commit/d5b7836cf7278dc9d0fe765b635de60c33911d72

关于gradle - 使用 Robolectric 问题在 Android Studio 中进行 Android 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18344732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com