I built an android app using React Native, it got built successfully but when I run the app in my Android Virtual Device it shows up a full red screen with the following error:
I have not done native app development ever before neither do I have any knowledge of Java so I have no idea what this error means and how to fix this.
The name of the package associated to this error is not AirMapModule but MapsPackage from com.airbnb.android.react.maps.
In your MainApplication.java in directory : android/app/src/main/java/../../ remove any duplicate entry of :
- the import package :
import com.airbnb.android.react.maps.MapsPackage - the call to the constructor of the module :
new MapsPackage()in functiongetPackages
Go to file "MainApplication.java" (under .\android\app\src\main\java\com\projectName)
Make sure that under getPackages() function you don't have duplicate lines (in my case I had "new MapsPackage()" twice).
Fix duplicate imports as well.
Good luck
Go to the MainAplication file.
Remove duplicate package and remove duplicate package in getPackages() method
@Override
protected List<ReactPackage> getPackages() {
return Arrays.<ReactPackage>asList(
new MainReactPackage(),
new VectorIconsPackage()
);
}
Then after try this command in your terminal :
- cd android
- ./gradlew clean
@Override
public boolean canOverrideExistingModule() {
return true;
}
Add these code to your native module constructor would be fine
You can try check in file MainApplication.java in directory : android\app\src\main\java is have any duplicate package AirMapModule exist or not, and delete 1 if have.
If the version of RN you're using is >= 0.60 then there is the possibility that auto-linking and your manual linking are doing the same thing twice. You have two options:
1- You can revert code changes in getPackages method
2- You can disable auto linking in react-native-config.js file.
check your MainApplication.java, in particular protected List<ReactPackage> getPackages(); the AirMapModule is probably twice in the list
if installed library react-navigation you can run via android studio. else remove library react-navigation and just yarn it's will work.
来源:https://stackoverflow.com/questions/41846452/how-to-set-canoverrideexistingmodule-true-in-react-native-for-android-apps
