I'm working on a fork for React-Native with Android ICS support. I have trouble running right now on Android 4.0.3, I am working on Ubuntu 14.04 64bit.
Here is what I have done (according to the following instructions: https://facebook.github.io/react-native/docs/android-building-from-source.html):
- forked react-native so I had my own
- Added compatibility stuff to start with (link: https://github.com/CodeBuffet/react-native/tree/ics-compat, on the
ics-compatbranch) - tested locally on android 4.0.3
After working away some errors I had because of the low version, I came across the following error, and was wondering if you guys knew what it was.
I think it has something to do with the fact that it's trying to look for com/facebook/react/uimanager/ReactProp which doesn't exists in the project (but com.facebook.react.uimanager.annotations.ReactProp does).
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
Some info:
Why are you trying to introduce support for such an old Android version?
- Because I am making an app whose users are 90% Android ICS users. We already started working in React-Native without knowing this, so now I'm trying to make React-Native compatible with ICS so we dont have this issue anymore.
You may need extra work. Please check https://github.com/facebook/react-native-website/issues/653 and https://github.com/facebook/react-native/issues/22118.