3***@qq.com
3***@qq.com
  • 发布:2025-11-08 16:05
  • 更新:2025-11-10 09:02
  • 阅读:119

uniapp运行在银联金融设备上白屏(跨data分区)

分类:uni-app

uniapp运行在银联金融设备上白屏(跨data分区)
现象:uniapp开发的安卓app在银联金融设备的测试机可以正常运行,发布到应用市场在银联金融设备生产机下载下来运行的时候,在启动页过后就出现白屏,可能由于跨data分区限制引起的,下面是日志,请问这个如何解决?
1-04 11:21:46.255 D/StatusBar.NetworkController( 2707): changing data overlay icon id to 0
11-04 11:21:46.402 E/Html5Plus-SplashClosed(26105): 1762226506402
11-04 11:21:46.403 E/Main_Path(26105): closeSplashScreen0 appid=UNICAA813D;true;closeSplashDid=false
11-04 11:21:46.410 W/ContextImpl(26105): Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache
11-04 11:21:46.422 W/ContextImpl(26105): Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache
11-04 11:21:47.245 D/StatusBar.NetworkController( 2707): hasService: mServiceState=1 1 home null null null Unknown Unknown CSS not supported -1 -1 RoamInd=-1 DefRoamInd=-1 EmergOnly=true retVal=false
11-04 11:21:47.251 D/StatusBar.NetworkController( 2707): refreshViews: Data not connected!! Set no data type icon / Roaming

再给一些日志:
11-04 11:21:35.639 I/audio_hw_utils( 313): audio_extn_utils_send_app_type_cfg app_type 69936, acdb_dev_id 14, sample_rate 48000
11-04 11:21:35.640 D/audio_hw_primary( 313): select_devices: done
11-04 11:21:35.662 I/appmarket( 5539): --removeListener:true
11-04 11:21:35.673 E/ResourceType(26105): Style contains key with bad entry: 0x0101058c
11-04 11:21:35.673 E/ResourceType(26105): Style contains key with bad entry: 0x0101069a
11-04 11:21:35.702 I/Timeline(26105): Timeline: Activity_launch_request id:uni.app.UNICAA813D time:39607025
11-04 11:21:35.714 W/!MCSER! ( 2741): SECURITY## a client is using 'oneway'!
11-04 11:21:35.718 I/ViewRootImpl(26105): CPU Rendering VSync enable = true
11-04 11:21:35.765 E/ResourceType(26105): Style contains key with bad entry: 0x0101058c
11-04 11:21:35.765 E/ResourceType(26105): Style contains key with bad entry: 0x0101069a
11-04 11:21:35.767 E/Html5Plus-onCreate(26105): 1762226495767
11-04 11:21:35.767 D/WebAppActivity(26105): onCreate
11-04 11:21:35.785 W/ContextImpl(26105): Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache
11-04 11:21:35.785 D/download_manager(26105): BaseActivity onCreate
11-04 11:21:35.786 D/ (26105): onRuntimePreCreate appid=Main_App
11-04 11:21:35.787 W/ResourceType(26105): No package identifier when getting value for resource number 0x00000000
11-04 11:21:35.787 D/Main_Path(26105): use defaultSplash
11-04 11:21:35.801 D/WebAppActivity(26105): checkAutoHide false
11-04 11:21:35.803 E/Html5Plus-onResume(26105): 1762226495803
11-04 11:21:35.804 W/!MCSER! ( 2741): SECURITY## a client is using 'oneway'!
11-04 11:21:35.804 I/ViewRootImpl(26105): CPU Rendering VSync enable = true
11-04 11:21:35.849 E/weex (26105): [WXBridgeManager] invoke execJSService: framework.js uninitialized.
11-04 11:21:35.871 E/weex (26105): [WXBridgeManager] invoke execJSService: framework.js uninitialized.
11-04 11:21:35.872 W/weex (26105): app AvailMemory ---->>>334
11-04 11:21:35.906 E/art (26105): No implementation found for void com.bun.lib.a.a(boolean) (tried Java_com_bun_lib_a_a and Java_com_bun_lib_a_aZ)
11-04 11:21:35.908 E/MdidSdkHelper(26105): InvocationTargetException
11-04 11:21:35.908 E/MdidSdkHelper(26105): java.lang.reflect.InvocationTargetException
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Constructor.newInstance(Native Method)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at com.bun.miitmdid.core.MdidSdkHelper.InitSdk(Unknown Source)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Method.invoke(Native Method)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Method.invoke(Method.java:372)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.l3.a(SourceFile:27)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.l3.b(SourceFile:1)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.l3.c(SourceFile:2)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.l4.b(SourceFile:35)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.w3.b(SourceFile:7)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.w3.a(SourceFile:36)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.t3.b(SourceFile:1)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.feature.gg.dcloud.ADHandler.pull(SourceFile:35)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.feature.gg.dcloud.AolFeatureImpl.doForFeature(SourceFile:137)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.feature.gg.AolFeatureImplMgr.doForFeature(SourceFile:5)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.p.k.a(SourceFile:16)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at io.dcloud.a$a.run(SourceFile:5)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at android.os.Handler.handleCallback(Handler.java:739)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at android.os.Handler.dispatchMessage(Handler.java:95)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at android.os.Looper.loop(Looper.java:135)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at android.app.ActivityThread.main(ActivityThread.java:5271)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Method.invoke(Native Method)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at java.lang.reflect.Method.invoke(Method.java:372)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:902)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:697)
11-04 11:21:35.908 E/MdidSdkHelper(26105): Caused by: java.lang.UnsatisfiedLinkError: No implementation found for void com.bun.lib.a.a(boolean) (tried Java_com_bun_lib_a_a and Java_com_bun_lib_a_a
Z)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at com.bun.lib.a.a(Native Method)
11-04 11:21:35.908 E/MdidSdkHelper(26105): at com.bun.miitmdid.core.MdidSdk.<init>(Unknown Source)
11-04 11:21:35.908 E/MdidSdkHelper(26105): ... 25 more
11-04 11:21:35.908 D/MdidSdkHelper(26105): exception exit
11-04 11:21:35.932 W/ContextImpl(26105): Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache
11-04 11:21:35.937 W/ContextImpl(26105): Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache
11-04 11:21:35.949 I/SurfaceFlinger( 302): FPS: 24
11-04 11:21:35.955 I/jse_precompilejs(26105): 1
11-04 11:21:36.070 I/ActivityManager( 801): Displayed uni.app.UNICAA813D/io.dcloud.PandoraEntryActivity: +346ms (total +406ms)
11-04 11:21:36.070 I/Timeline( 801): Timeline: Activity_windows_visible id: ActivityRecord{7c4db3d u0 uni.app.UNICAA813D/io.dcloud.PandoraEntryActivity t9} time:39607393
11-04 11:21:36.071 I/Timeline( 801): Timeline: Activity_windows_visible id: ActivityRecord{cc2bea6 u0 uni.app.UNICAA813D/io.dcloud.PandoraEntry t9 f} time:39607394
11-04 11:21:36.074 E/WXParams(26105): setCrashFilePath: /data/data/uni.app.UNICAA813D/app_crash
11-04 11:21:36.075 E/weex (26105): getUseSingleProcess is running false
11-04 11:21:36.075 E/weex (26105): getReleaseMap:true
11-04 11:21:36.075 E/weex (26105): getLibJsbPath is running /data/data/uni.app.UNICAA813D/cache/cache/weex/libs/weexjsb/armeabi-v7a/libweexjsb.so
11-04 11:21:36.075 E/weex (26105): getLibLdPath is running /data/app/uni.app.UNICAA813D-2/lib/arm:/vendor/lib:/system/lib:/lib:/usr/lib:/home/EPT_Middleware/lib
11-04 11:21:36.079 E/WeexCore(26105): startupPie :1
11-04 11:21:36.100 W/WeexJSBridgeThr(29542): type=1400 audit(0.0:13): avc: denied { setattr } for name="libweexjsb.so" dev="mmcblk0p33" ino=178648 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file permissive=0
11-04 11:21:36.100 W/WeexJSBridgeThr(29542): type=1400 audit(0.0:14): avc: denied { setattr } for name="libweexjsb.so" dev="mmcblk0p33" ino=178648 scontext=u:r:untrusted_app:s0 tcontext=u:object_r:apk_data_file:s0 tclass=file permissive=0

2025-11-08 16:05 负责人:无 分享
已邀请:
DCloud_heavensoft

DCloud_heavensoft

这种问题我们难以重现,建议点右上角付费技术支持沟通解决

  • 3***@qq.com (作者)

    好的,我会考虑付费咨询,可以先看一个问题吗?就是我已经remove了所有EXTERNAL_STORAGE权限,但根据日志显示还是会访问 Failed to ensure directory: /storage/sdcard1/Android/data/uni.app.UNICAA813D/cache,是不是uniapp底层默认就是会访问外部存储,且无法去掉?以下是manifest.json

    "app-plus" : {

    "usingComponents" : true,

    "nvueStyleCompiler" : "uni-app",

    "compilerVersion" : 3,

    "splashscreen" : {

    "alwaysShowBeforeRender" : true,

    "waiting" : true,

    "autoclose" : true,

    "delay" : 0

    },

    / 模块配置 /

    "modules" : {},

    / 应用发布信息 /

    "distribute" : {

    / android打包配置 /

    "android" : {

    "permissions" : [],

    "abiFilters" : [ "armeabi-v7a", "arm64-v8a" ],

    "permissionRemove" : [

    "android.permission.READ_EXTERNAL_STORAGE",

    "android.permission.WRITE_EXTERNAL_STORAGE",

    "android.permission.MANAGE_EXTERNAL_STORAGE",

    "android.permission.READ_PHONE_STATE",

    "android.permission.CALL_PHONE",

    "android.permission.PHONE_CALL_STATE",

    "android.permission.READ_PHONE_NUMBERS",

    "android.permission.GET_ACCOUNTS",

    "android.permission.WRITE_SETTINGS",

    "android.permission.INSTALL_PACKAGES"

    ]

    },

    / ios打包配置 /

    "ios" : {

    "dSYMs" : false

    },

    / SDK配置 /

    "sdkConfigs" : {}

    }

    },

    2025-11-08 22:28

3***@qq.com

3***@qq.com (作者)

我已经remove了所有EXTERNAL_STORAGE权限,但根据日志显示还是会访问 Failed to ensure directory:
/storage/sdcard1/Android/data/uni.app.UNICAA813D/cache

  • now007

    建议离线打包

    2025-11-10 09:22

  • 3***@qq.com (作者)

    回复 now007: 非常感谢您的回复,仿佛抓住了救命稻草。

    我问了AI说,uniapp源码里面就写死了会访问外部存储的缓存,您的意思我用uniapp开发的app,通过离线打包可以绕过这一块? 我是做vue开发的,没接触过安卓,您能大致说一个思路吗?我和公司原生开发同事说说,看看能不能弄成。

    DHStorage.java (UniApp存储管理类)

    java

    public class DHStorage {

    public static void init(Context context) {

    // 在应用启动时自动初始化外部存储

    File externalCacheDir = context.getExternalCacheDir(); // 这里触发跨分区

    File externalFilesDir = context.getExternalFilesDir(null); // 这里触发跨分区


        if (externalCacheDir != null) {  
    // 尝试创建外部缓存目录 ← 这里被银联POS阻止
    externalCacheDir.mkdirs();
    }
    }

    }

    2025-11-10 09:29

  • now007

    回复 3***@qq.com: 关于这个权限不确定打包的时候默认会添加进去, 但是默认确实会添加一部分权限可以通过 manifest.json 尝试强行删除该权限, 如果不生效建议离线打包,所有权限全部自定义配置

    2025-11-10 09:38

  • 3***@qq.com (作者)

    回复 now007: 感谢感谢,我查了下,离线打包可以从原生层面修改AndroidManifest.xml来remove外部 存储权限,这样能否脱离uniapp的这部分源码? File externalCacheDir = context.getExternalCacheDir(); // 这里触发跨分区

    File externalFilesDir = context.getExternalFilesDir(null); // 这里触发跨分区

    2025-11-10 10:09

  • 1***@qq.com

    回复 3***@qq.com: 大哥,解决了吗

    2025-11-10 15:35

  • 3***@qq.com (作者)

    回复 1***@qq.com: 俺是小妹,你们也遇到这个问题了?我们聊聊下啊,互相通个气啊

    2025-11-10 19:04

要回复问题请先登录注册