从你提供的信息来看,React Native 应用在 iOS 上运行正常,但在 Android 上使用 Axios 进行网络请求时出现问题。根据你提供的错误日志,问题可能与 JavaScript 引擎(hermes)有关。
首先,确保你的 React Native 项目中已经安装了 axios
。如果没有,请运行以下命令进行安装:
npm install axios
然后,尝试在你的 Android 项目的 android/app/src/main/java/your/package/name/MainActivity.java
文件中添加以下代码:
import io.infectious.contagion.JsEngine;
import io.infectious.contagion.JsEngineProvider;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JsEngineProvider.setDefaultJsEngine(new HermesJsEngine());
}
}
这段代码将默认的 JavaScript 引擎设置为 HermesJsEngine
,这可能会解决你在 Android 上遇到的问题。如果问题仍然存在,请检查你的网络配置和后端 API,确保它们在 Android 设备上可以正常工作。
2条答案
按热度按时间x7yiwoj41#
在iOS上工作正常,但在Android上无法发送任何请求。在Flipper的网络部分,我看不到任何传出或传入的请求。我不是在本地主机上,所以用10.0.0.2替换它也无法解决问题。我的后端URL类似于http://x.x.x.x:8000,Java版本为20.0.0.2,Gradle版本为8.3,也尝试了许多其他Java和Gradle版本。以下是React Native的信息输出。
系统:OS:macOS 14.4.1 CPU:(8) arm64 Apple M2 Memory:97.06 MB / 8.00 GB Shell:version: "5.9" path: /bin/zsh Binaries: Node: version: 20.10.0 path: ~/.nvm/versions/node/v20.10.0/bin/node Yarn: version: 1.22.21 path: ~/.nvm/versions/node/v20.10.0/bin/yarn npm: version: 10.2.3 path: ~/.nvm/versions/node/v20.10.0/bin/npm Watchman: version: 2024.07.01.00 path: /usr/local/bin/watchman Managers: CocoaPods: version: 1.15.2 path: /usr/local/lib/ruby/gems/3.3.0/bin/pod SDKs: iOS SDK: Platforms: - DriverKit 23.4 - iOS 17.4 - macOS 14.4 - tvOS 17.4 - visionOS 1.1 - watchOS 10.4 Android SDK: API Levels: - "31" - "33" - "33" - "33" - "34" - "34" - "35" Build Tools: - 30.0.3 - 33.0.0 - 33.0.1 - 34.0.0 - 35.0.0 System Images: - android-33 | Google TV ARM 64 v8a - android-33 | Google Play ARM 64 v8a - android-34 | Google APIs ARM 64 v8a - android-35 | Google APIs ARM 64 v8a Android NDK: Not Found IDEs: Android Studio: 2022.3 AI-223.8836.35.2231.11005911 Xcode: version: 15.3/15E204a path: /usr/bin/xcodebuild Languages: Java: version: 20.0.2 path: /Library/Java/JavaVirtualMachines/jdk-20.jdk/Contents/Home/bin/javac Ruby: version: 3.0.6 path: @.**/bin/ruby npmPackages: @*
kpbwa7wx2#
It's Google. He always swapped my app. I ended up turning him off.