【发布时间】:2016-08-16 11:15:47
【问题描述】:
我正在开发一个支持 Android ICS 的 React-Native fork。 我现在在 Android 4.0.3 上运行时遇到问题,我正在使用 Ubuntu 14.04 64 位。
这是我所做的(根据以下说明:https://facebook.github.io/react-native/docs/android-building-from-source.html):
- forked react-native 所以我有自己的
- 添加了兼容性内容(链接:https://github.com/CodeBuffet/react-native/tree/ics-compat,在
ics-compat分支上) - 在 android 4.0.3 上本地测试
在解决了由于版本低导致的一些错误后,我遇到了以下错误,想知道你们是否知道它是什么。
我认为这与它试图寻找项目中不存在的com/facebook/react/uimanager/ReactProp(但com.facebook.react.uimanager.annotations.ReactProp 存在)这一事实有关。
E/AndroidRuntime( 1270): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime( 1270): at android.os.AsyncTask$3.done(AsyncTask.java:278)
E/AndroidRuntime( 1270): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime( 1270): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime( 1270): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime( 1270): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime( 1270): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:208)
E/AndroidRuntime( 1270): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/AndroidRuntime( 1270): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/AndroidRuntime( 1270): at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime( 1270): Caused by: java.lang.NoClassDefFoundError: com/facebook/react/uimanager/ReactProp
E/AndroidRuntime( 1270): at java.lang.reflect.Method.getAnnotation(Native Method)
E/AndroidRuntime( 1270): at java.lang.reflect.Method.getAnnotation(Method.java:275)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagersPropertyCache.extractPropSettersFromViewManagerClassDefinition(ViewManagersPropertyCache.java:400)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagersPropertyCache.getNativePropSettersForViewManagerClass(ViewManagersPropertyCache.java:301)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackViewManagerSetter.<init>(ViewManagerPropertyUpdater.java:116)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackViewManagerSetter.<init>(ViewManagerPropertyUpdater.java:110)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagerPropertyUpdater.findManagerSetter(ViewManagerPropertyUpdater.java:73)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManagerPropertyUpdater.getNativeProps(ViewManagerPropertyUpdater.java:60)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.ViewManager.getNativeProps(ViewManager.java:199)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.UIManagerModuleConstantsHelper.createConstants(UIManagerModuleConstantsHelper.java:62)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.UIManagerModule.createConstants(UIManagerModule.java:128)
E/AndroidRuntime( 1270): at com.facebook.react.uimanager.UIManagerModule.<init>(UIManagerModule.java:80)
E/AndroidRuntime( 1270): at com.facebook.react.CoreModulesPackage.createNativeModules(CoreModulesPackage.java:68)
E/AndroidRuntime( 1270): at com.facebook.react.ReactInstanceManagerImpl.processPackage(ReactInstanceManagerImpl.java:895)
E/AndroidRuntime( 1270): at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:812)
E/AndroidRuntime( 1270): at com.facebook.react.ReactInstanceManagerImpl.access$700(ReactInstanceManagerImpl.java:102)
E/AndroidRuntime( 1270): at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:198)
E/AndroidRuntime( 1270): at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:181)
E/AndroidRuntime( 1270): at android.os.AsyncTask$2.call(AsyncTask.java:264)
E/AndroidRuntime( 1270): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
E/AndroidRuntime( 1270): ... 5 more
E/AndroidRuntime( 1270): Caused by: java.lang.ClassNotFoundException: com.facebook.react.uimanager.ReactProp
E/AndroidRuntime( 1270): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
E/AndroidRuntime( 1270): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
E/AndroidRuntime( 1270): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
E/AndroidRuntime( 1270): ... 25 more
W/ActivityManager( 875): Force finishing activity com.ma3akom/.MainActivity
一些信息:
为什么要引入对这么旧的 Android 版本的支持?
- 因为我正在制作一个应用程序,其用户是 90% 的 Android ICS 用户。我们已经在不知不觉中开始使用 React-Native,所以现在我正在尝试使 React-Native 与 ICS 兼容,这样我们就不会再遇到这个问题了。
【问题讨论】:
-
你有没有得到这个工作?遇到与您相同的错误,但我似乎无法弄清楚是什么原因造成的。
标签: android facebook android-ndk react-native android-4.0-ice-cream-sandwich