Expo资产库在调试中工作,但在发布中不工作(Expo弹出项目/Rect Native)



我试图在Android上获得一个.jpg文件的绝对路径。我正在使用Expo Asset库。当我的应用程序在debug mode中运行时,一切都按预期运行。Expo Asset库使用正确的localUri路径返回我的文件,但在release mode中,localUri属性仅包含文件名,而不包含实际路径。作为debug的示例,localUri包含以下内容:file:///data/user/0/com.test.app/cache/ExponentAsset-10f8d3f8108915f49694bdd86e85fcbd.jpg而在CCD_ 12中,相同的属性将包含CCD_

以下是请求:

backgroundUri = await Asset.loadAsync(require('../../assets/bg_img.jpg'));

这是我用来构建releaseapk:的命令

cd android
./gradlew assembleRelease

这是我在debug:中运行应用程序时使用的命令

npx react-native start --port 8084 --reset-cache
npx react-native run-android --port 8084

有没有办法做到这一点?或者有更好的解决方案可以在Android上获得文件的绝对路径吗?

根据我的经验,仅仅以发布模式构建是不够的。构建发布时需要遵循以下步骤:

  1. ./gradlew clean
  2. react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res/
  3. ./gradlew assembleRelease

正如您所看到的,为了成功地将所有内容打包以供发布,首先需要绑定。

使用Expo File System库找到了一个解决方案:

const imgUri = `${FileSystem.cacheDirectory}/bg_img.jpg`;
await FileSystem.copyAsync({from: 'asset://assets/images/bg_img.jpg', to: imgUri });

我还在/android/app/src/main/assets/images下创建了一个资产映像文件夹,并在其中添加了我的.jpg文件。

相关内容

  • 没有找到相关文章

最新更新