简体   繁体   English

android.support.v7.widget.RecyclerView:仅当通过appium打开应用程序时,空对象引用

[英]android.support.v7.widget.RecyclerView: null object reference only when app is opened via appium

Are there any differences between running an app manually and using appium? 手动运行应用程序与使用appium有什么区别?

Because 因为

It only happens when the app is started by appium. 仅当应用程序由appium启动时才会发生。 When app is installed and started manually, it runs normally without crashes. 手动安装和启动应用程序后,它可以正常运行而不会崩溃。

If I want to automatically or manually display the one specific page the app crash “Unfortunately,… has stopped” 如果我要自动或手动显示一个特定页面,则应用崩溃“不幸的是,…已停止”

There are not any errors about it in appium logs. 在appium日志中没有关于它的任何错误。 Only this exception in android monitor: android监视器中仅此异常:

E/AndroidRuntime: FATAL EXCEPTION: main Process: ..., PID: 26842 E / AndroidRuntime:致命异常:主进程:...,PID:26842
java.lang.NullPointerException: Attempt to read from field 'android.support.v7.widget.RecyclerView$Recycler android.support.v7.widget.RecyclerView.mRecycler' on a null object reference at android.support.v7.widget.RecyclerView$LayoutManager.onInitializeAccessibilityNodeInfo(RecyclerView.java:9580) at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:59) at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompat.java:246) at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompatJellyBean.java:66) at android.view.View.onInitializeAccessibilityNodeInfo(View.java:6076) at android.view.View.createAccessibilityNodeInfoInternal(View.java:6037) at android.view.View$AccessibilityDelegate.createAccessibilityNodeInfo(View.java:22281) at android.view.Vie java.lang.NullPointerException:尝试从android.support.v7.widget.RecyclerView上的空对象引用中读取字段“ android.support.v7.widget.RecyclerView $ Recycler android.support.v7.widget.RecyclerView.mRecycler” android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityNodeInfo(RecyclerViewAccessibilityDelegate.java:59)处的$ LayoutManager.onInitializeAccessibilityNodeInfo(RecyclerView.java:9580)在android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegate1el 246)at android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.onInitializeAccessibilityNodeInfo(AccessibilityDelegateCompatJellyBean.java:66)在android.view.View.onInitializeAccessibilityNodeInfo(View.java:6076)在android.view.View.createAccessibilityNodeInfoInternal(View。 6037),位于android.view.Vie,位于android.view.View $ AccessibilityDelegate.createAccessibilityNodeInfo(View.java:22281) w.createAccessibilityNodeInfo(View.java:6020) at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145) at android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119) at android.view.View.onInitializeAccessibilityEventInternal(View.java:5974) at android.view.View$AccessibilityDelegate.onInitializeAccessibilityEvent(View.java:22193) at android.support.v4.view.AccessibilityDelegateCompatIcs.onInitializeAccessibilityEvent(AccessibilityDelegateCompatIcs.java:97) at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:192) at android.support.v4.view.AccessibilityDelegateCompat.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:432) at android.support.v7.widget.RecyclerViewAccessibilityDelegate.onInitializeAccessibilityEvent(RecyclerViewAccessibilityDelegate.java:65) at android.support.v4.view.AccessibilityDelegateCompat$Accessibi w.createAccessibilityNodeInfo(View.java:6020)在android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:145)在android.view.accessibility.AccessibilityRecord.setSource(AccessibilityRecord.java:119)在android.view.View .onInitializeAccessibilityEventInternal(View.java:5974)(位于android.view.View $ AccessibilityDelegate.onInitializeAccessibilityEvent(View.java:22193)(位于android.support.v4.view.AccessibilityDelegateCompatIcs.onInitializeAccessibilityEvent(AccessibilityDelegateCompatIcs.java:support))。 v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:192)在android.support.v4.view.AccessibilityDelegateCompat.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:432)在android.support.Rev.Rev。 java:65)在android.support.v4.view.AccessibilityDelegateCompat $ Accessibi lityDelegateJellyBeanImpl$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:241) at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:61) at android.view.View.onInitializeAccessibilityEvent(View.java:5960) at android.view.View.sendAccessibilityEventUncheckedInternal(View.java:5827) at android.view.View$AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:22132) at android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatIcs.java:122) at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:223) at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:371) at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateJellyBeanImpl$1.sendAccessibilityEven android.view.View.on5.onInitial(960)上的lityDelegateJellyBeanImpl $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompat.java:241)在android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.onInitializeAccessibilityEvent(AccessibilityDelegateCompatJellyBean.java:61)在android.View.View.View.on5 android.view.View.View $ AccessibilityDelegate.sendAccessibilityEventUnchecked(View.java:22132)位于。在android.support.v4D.view.DJ.Delgate.Comp.Ill.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:223)在android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEventUnchecked(AccessibilityDelegateCompat.java:371)在android.support.v4Dview。 .sendAccessibility甚至 tUnchecked(AccessibilityDelegateCompat.java:268) at android.support.v4.view.AccessibilityDelegateCompatJellyBean$1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:87) at android.view.View.sendAccessibilityEventUnchecked(View.java:5810) at android.support.v7.widget.RecyclerView.sendAccessibilityEventUnchecked(RecyclerView.java:3206) at android.view.View.sendAccessibilityEventInternal(View.java:5789) at android.view.View$AccessibilityDelegate.sendAccessibilityEvent(View.java:22090) at android.support.v4.view.AccessibilityDelegateCompatIcs.sendAccessibilityEvent(AccessibilityDelegateCompatIcs.java:117) at android.support.v4.view.AccessibilityDelegateCompat$AccessibilityDelegateIcsImpl.sendAccessibilityEvent(AccessibilityDelegateCompat.java:217) at android.support.v4.view.AccessibilityDelegateCompat.sendAccessibilityEvent(AccessibilityDelegateCompat.java:349) at android.support.v4.view.AccessibilityDelegateComp 在android.support.v4.view.AccessibilityDelegateCompatJellyBean $ 1.sendAccessibilityEventUnchecked(AccessibilityDelegateCompatJellyBean.java:87)处为tUnchecked(AccessibilityDelegateCompat.java:268)在android.support.android.view.View.sendAccessibilityEventUnchecked(View.java:5810) Windows上的widget.RecyclerView.sendAccessibilityEventUnchecked(RecyclerView.java:3206)在android.view.View.sendAccessibilityEventInternal(View.java:5789)在android.view.View $ AccessibilityDelegate.sendAccessibilityEvent(View.java:22090)在android.support.v4 .view.AccessibilityDelegateCompatIcs.sendAccessibilityEvent(AccessibilityDelegateCompatIcs.java:117)在android.support.v4.view.AccessibilityDelegateCompat $ AccessibilityDelegateIcsImpl.sendAccessibilityEvent(AccessibilityDelegateCompat.java:217)在android.support.v4.view.AccessibilityDeleCompat :349),位于android.support.v4.view.AccessibilityDelegateComp

I use appium v1.6.5 (1.7.1) and Android 6.0 - 7.1 emulators 我使用appium v​​1.6.5(1.7.1)和Android 6.0-7.1模拟器

Appium is using adb shell to install/launch app and for elements interactions it use UiAutomator / UiAutomator2 (depends on AutomationName capability you provided) Appium使用adb shell安装/启动应用程序,并使用UiAutomator / UiAutomator2进行元素交互(取决于您提供的AutomationName功能)

You can see it in Appium server logs: 您可以在Appium服务器日志中看到它:

install apk: 安装apk:

Running '/Users/<user>/Library/Android/sdk/platform-tools/adb'
with args:["-P",5037,"-s","192.168.56.101:5555","shell","ls",
"/data/local/tmp/f0f1ea15bc776c996fddca878b00c589.apk"]

launch app: 启动应用程序:

 Running '/Users/<user>/Library/Android/sdk/platform-tools/adb'
 with args: ["-P",5037,"-s","192.168.56.101:5555","shell","am","start",
 "-W","-n","<app_package>/<app_package>.launch.view.LaunchActivity","-S"]

waits for expected activity to be started: 等待预期的活动开始:

Getting focused package and activity
Running '/Users/dmitry/Library/Android/sdk/platform-tools/adb' with args:
["-P",5037,"-s","192.168.56.101:5555","shell","dumpsys","window","windows"]
Found package: <package> and fully qualified activity name : <activity_name>

finalize session creation: 完成会话创建:

New AndroidDriver session created successfully,
session 807d2f94-bf31-4107-87ca-848261a4ce15 added to master session list

So you can try the same commands from terminal and see if you can reproduce the crash 因此,您可以从终端尝试相同的命令 ,看看是否可以重现崩溃

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在执行recyclerView.addView时,对空对象引用的'boolean android.support.v7.widget.RecyclerView $ ViewHolder.shouldIgnore()' - 'boolean android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference when doing recyclerView.addView 在null对象引用上对&#39;android.support.v7.widget.RecyclerView $ LayoutManager&#39;的任何解决方案 - Any solution to 'android.support.v7.widget.RecyclerView$LayoutManager' on a null object reference 空对象参考上的android.support.v7.widget.RecyclerView $ ViewHolder.shouldIgnore()&#39; - android.support.v7.widget.RecyclerView$ViewHolder.shouldIgnore()' on a null object reference android.support.v7.widget.RecyclerView null吗? 使用LinearLayoutManager - android.support.v7.widget.RecyclerView null ? with LinearLayoutManager android.support.v7.app.AlertController.RecycleListView 和 android.support.v7.widget.RecyclerView 的区别 - difference between android.support.v7.app.AlertController.RecycleListView and android.support.v7.widget.RecyclerView RecyclerView没有LayoutManager android.support.v7.widget.RecyclerView - RecyclerView has no LayoutManager android.support.v7.widget.RecyclerView 无法导入导入android.support.v7.widget.RecyclerView; - Cannot import import android.support.v7.widget.RecyclerView; &#39;布尔android.support.v7.widget.RecyclerView $ LayoutManager.canScrollVertically()&#39; - 'boolean android.support.v7.widget.RecyclerView$LayoutManager.canScrollVertically()' 蚂蚁,错误膨胀类android.support.v7.widget.RecyclerView - Ant, Error inflating class android.support.v7.widget.RecyclerView NPE @ android.support.v7.widget.RecyclerView $ LayoutManager.detachViewInternal - NPE @ android.support.v7.widget.RecyclerView$LayoutManager.detachViewInternal
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM