Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在React原生Android中引用ReactScrollView方法时出现NoClassDefFoundError_Android_React Native - Fatal编程技术网

在React原生Android中引用ReactScrollView方法时出现NoClassDefFoundError

在React原生Android中引用ReactScrollView方法时出现NoClassDefFoundError,android,react-native,Android,React Native,当用户滚动ReactNativeView的内容时,我试图在本机中隐藏ActionBar和FloatingActionButton。直观地说,这应该通过从JS回调回本机来完成。然而,声明“本机模块应该只调用它的回调一次。”这不适合我的用例,因为我需要能够监控一致的滚动回调流 为了解决这个问题,我在ReactNativeView上设置了一个GlobalLayoutListener,并在我观察到ReactNative注入了ReactScrollView时设置了OnScrollChangeListene

当用户滚动ReactNativeView的内容时,我试图在本机中隐藏ActionBar和FloatingActionButton。直观地说,这应该通过从JS回调回本机来完成。然而,声明“本机模块应该只调用它的回调一次。”这不适合我的用例,因为我需要能够监控一致的滚动回调流

为了解决这个问题,我在ReactNativeView上设置了一个GlobalLayoutListener,并在我观察到ReactNative注入了ReactScrollView时设置了OnScrollChangeListener。这在API22上非常有效。但是,在API 21上,它在我尝试设置OnScrollChangeListener时抛出NoClassDefFoundError。堆栈跟踪上方有两个错误:“类ScrollAnimator的链接失败”和“无法解析虚拟方法ScrollView.setOnScrollChangeListener”

我理解NoClassDefFoundError是由于库在编译时出现,而不是在运行时出现。这是一个项目配置问题,通常是由于引用了同一库的两个不同版本而引起的。更多关于NoClassDefFoundError的信息可以在这个流行的网站上阅读

我相当肯定我没有这样的项目配置问题,因为它在API22上运行得很好。那么,这是怎么回事?此外,我是否打算以正确的方式解决这个问题?或者,有没有更好的方法将滚动更改事件从JS发送到本机?

在API级别23中添加了。一个解决办法是使用

mScrollView.getViewTreeObserver().addOnScrollChangedListener(listenerInstance);
如果您试图获取X,Y值,上述回调侦听器将不会有多大帮助。

在API级别23中添加了。一个解决办法是使用

mScrollView.getViewTreeObserver().addOnScrollChangedListener(listenerInstance);
如果您试图获取X,Y值,上述回调侦听器将不会有多大帮助