簡體   English   中英

構建 Android 應用程序時出現 React-Native 可繪制錯誤

[英]React-Native drawable error when building the Android app

我正在使用以下命令構建要發布的應用程序: ./gradlew assembleRelease ,但出現此錯誤:

uncaught error Error: Don't know which android drawable suffix to use for asset: {"__packager_asset":true,"fileSystemLocation":"/home/marco/Lavoro/react/FarEast/img","httpServerLocation":"/assets/img","width":140,"height":83,"scales":[1,2,3,4,5],"files":["/home/marco/Lavoro/react/FarEast/img/main_halfcard_upper@1x.png","/home/marco/Lavoro/react/FarEast/img/main_halfcard_upper@2x.png","/home/marco/Lavoro/react/FarEast/img/main_halfcard_upper@3x.png","/home/marco/Lavoro/react/FarEast/img/main_halfcard_upper@4x.png","/home/marco/Lavoro/react/FarEast/img/main_halfcard_upper@5x.png"],"hash":"1d3f184ba6cf0e73bee648bb6b5aea53","name":"main_halfcard_upper","type":"png"}
at Object.getAndroidDrawableFolderName (assetPathUtils.js:25:11)
at getAssetDestPathAndroid (getAssetDestPathAndroid.js:15:40)
at saveAssets.js:38:44
at Array.forEach (native)
at saveAssets.js:36:20
at Array.forEach (native)
at saveAssets (saveAssets.js:35:6)
at buildBundle.js:65:29
at tryCallOne (/home/marco/Lavoro/react/FarEast/node_modules/react-native/node_modules/promise/lib/core.js:37:12)
at /home/marco/Lavoro/react/FarEast/node_modules/react-native/node_modules/promise/lib/core.js:123:15
:app:bundleReleaseJsAndAssets FAILED

我該如何解決這個問題?

顯然我使用了錯誤的標簽來指示圖像的大小。

這是正確的方法(取自assetPathUtils.js

case 0.75: return 'ldpi';
case 1: return 'mdpi';
case 1.5: return 'hdpi';
case 2: return 'xhdpi';
case 3: return 'xxhdpi';
case 4: return 'xxxhdpi';

所以image@1.5x.png匹配原生ldpiimage@1x.png匹配原生mdpi等等。

我使用 ldpi 電話(模擬器)遇到了以下類似錯誤,但在我的./img文件夾中沒有./img/green-apple@0.75.png圖像:

uncaught error Error: Don't know which android drawable suffix to use for asset: {"__packager_asset":true,"fileSystemLocation":"/Users/vasavi/dev/prashanthWorkspace/dev/img","httpServerLocation":"/assets/img","width":34,"height":38,"scales":[0.5,1,1.5,2,3],"files":["/Users/vasavi/dev/prashanthWorkspace/dev/img/green-apple@0.5x.png","/Users/vasavi/dev/prashanthWorkspace/dev/img/green-apple@1x.png","/Users/vasavi/dev/prashanthWorkspace/dev/img/green-apple@1.5x.png","/Users/vasavi/dev/prashanthWorkspace/dev/img/green-apple@2x.png","/Users/vasavi/dev/prashanthWorkspace/dev/img/green-apple@3x.png"],"hash":"f017f83c41b557cf3c65663d7f4f0583","name":"green-apple","type":"png"}
    at Object.getAndroidDrawableFolderName (assetPathUtils.js:25:11)
    at getAssetDestPathAndroid (getAssetDestPathAndroid.js:15:40)
    at saveAssets.js:38:44
    at Array.forEach (native)
    at saveAssets.js:36:20
    at Array.forEach (native)
    at saveAssets (saveAssets.js:35:6)
    at buildBundle.js:72:29
    at tryCallOne (/Users/vasavi/dev/prashanthWorkspace/dev/node_modules/promise/lib/core.js:37:12)
    at /Users/vasavi/dev/prashanthWorkspace/dev/node_modules/promise/lib/core.js:123:15
:app:bundleReleaseJsAndAssets FAILED

解決方案是:如果您正在使用

  • ldpi 設備你應該有像./img/green-apple@0.75.png
  • mdpi 設備你應該有像./img/green-apple@1.png
  • hdpi 設備你應該有像./img/green-apple@1.5.png
  • xhdpi 設備你應該有像./img/green-apple@2.png
  • xxhdpi 設備,您應該擁有像./img/green-apple@3.png
  • xxxhdpi 設備你應該有像./img/green-apple@4.png這樣的圖像。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM