You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native Android USB串口开发构建失败问题求助

React Native Android USB串口编译错误解决方法

1. 解决编译SDK版本问题

错误提示明确要求将compileSdkVersion设置为30或更高,操作步骤:

  • 打开项目根目录下的android/build.gradle文件
  • 在buildscript.ext块中修改compileSdkVersion为30及以上版本(推荐使用33,适配最新Android版本),同时可同步调整targetSdkVersion:
    buildscript {
        ext {
            compileSdkVersion = 33
            minSdkVersion = 21
            targetSdkVersion = 33
            // 其他原有配置保持不变
        }
    }
    
  • 检查android/app/build.gradle中的compileSdkVersion是否与根目录配置一致,确保同步。

2. 更换维护活跃的串口库

若原react-native-serialport库存在兼容性问题,推荐使用react-native-usb-serial(社区维护更活跃):

  • 安装依赖:
    npm install react-native-usb-serial --save
    
  • 在AndroidManifest.xml中添加USB权限:
    <uses-feature android:name="android.hardware.usb.host" />
    <uses-permission android:name="android.permission.USB_PERMISSION" />
    

3. 修正串口操作逻辑

串口操作需先获取权限、打开设备,再进行数据监听,示例代码:

import React, { useEffect } from 'react';
import { View, Text, PermissionsAndroid } from 'react-native';
import UsbSerial from 'react-native-usb-serial';

const App = () => {
  useEffect(() => {
    const setupSerialConnection = async () => {
      // 请求USB权限
      const permissionGranted = await PermissionsAndroid.request(
        PermissionsAndroid.PERMISSIONS.USB_PERMISSION
      );
      
      if (permissionGranted !== PermissionsAndroid.RESULTS.GRANTED) return;

      // 获取已连接的USB串口设备
      const connectedDevices = await UsbSerial.listDevices();
      if (connectedDevices.length === 0) return;

      // 打开第一个设备,配置波特率(根据实际设备调整)
      await UsbSerial.openDevice(connectedDevices[0], { baudRate: 9600 });

      // 监听串口数据
      UsbSerial.addListener('data', (receivedData) => {
        console.log('Received data:', receivedData);
      });
    };

    setupSerialConnection();

    // 组件卸载时关闭设备
    return () => {
      UsbSerial.closeDevice();
    };
  }, []);

  return (
    <View>
      <Text>Serial Reader</Text>
    </View>
  );
};

export default App;

4. 清理缓存重新构建

修改配置后执行以下命令清理缓存并重新编译:

cd android
./gradlew clean
cd ..
npx react-native run-android

内容的提问来源于stack exchange,提问作者adys 541

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 20:33:34