MNN icon indicating copy to clipboard operation
MNN copied to clipboard

快速添加已经转换为mnn的模型

Open ufo147525 opened this issue 11 months ago • 11 comments

如题,希望类似于基于llama.cpp的本地推理软件那样直接添加转换好的模型,或者建立一个扩展列表,用户进行上传或标记网络现有模型,开发者进行稍微的审核

ufo147525 avatar May 23 '25 04:05 ufo147525

本地模型我们会增加个路径,只要 push 到相关路径即可运行本地模型。

如果要分享给其他用户使用,可以直接在 github 上贴出你们的模型链接,运行截图等信息。 合适的话我们可以提供给其他用户使用。

Juude avatar May 23 '25 06:05 Juude

@Juude 可以考虑增加一个开放列表 允许其他用户的modelscope/huggingface等模型链接加入其中,展示在下载列表里

wangzhaode avatar May 23 '25 06:05 wangzhaode

是的,可以在 modelscope 上放个列表。

Juude avatar May 23 '25 06:05 Juude

那太好了,谢谢你们

---原始邮件--- 发件人: @.> 发送时间: 2025年5月23日(周五) 下午2:47 收件人: @.>; 抄送: @.@.>; 主题: Re: [alibaba/MNN] 快速添加已经转换为mnn的模型 (Issue #3556)

Juude left a comment (alibaba/MNN#3556)

本地模型我们会增加个路径,只要 push 到相关路径即可运行本地模型。

如果要分享给其他用户使用,可以直接在 github 上贴出你们的模型链接,运行截图等信息。 合适的话我们可以提供给其他用户使用。

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

ufo147525 avatar May 27 '25 08:05 ufo147525

https://github.com/alibaba/MNN/blob/master/apps/Android/MnnLlmChat/README.md#version-050 0.5.0 support push to/data/loca/tmp/mnn_models/ and then you can use from modellist.

Juude avatar May 27 '25 12:05 Juude

https://github.com/alibaba/MNN/blob/master/apps/Android/MnnLlmChat/README.md#version-050 0.5.0 support push to/data/loca/tmp/mnn_models/ and then you can use from modellist.

安装的 mnnchat apk版本为 0.5.1,windows上本地的模型地址 G:\ChromeDownload\model,按照给定的操作指引 输入 adb shell mkdir -p /data/local/tmp/mnn_models && adb push G:\ChromeDownload\model /data/local/tmp/mnn_models,在模型列表中并没有出现对应的本地模型,请问还需要什么别的操作吗?

suyu416416 avatar Jun 16 '25 11:06 suyu416416

@Juude

suyu416416 avatar Jun 16 '25 11:06 suyu416416

adb shell ls /data/local/tmp/mnn_models/model 看下显示

Juude avatar Jun 16 '25 11:06 Juude

adb shell ls /data/local/tmp/mnn_models/model 看下显示 显示正常的 模型文件 config.json
embeddings_bf16.bin llm.mnn
llm.mnn.json
llm.mnn.weight
llm_config.json
lora.mnn
tokenizer.txt
visual.mnn
visual.mnn.weight

suyu416416 avatar Jun 16 '25 12:06 suyu416416

adb shell ls /data/local/tmp/mnn_models/model 看下显示

尝试了mnn官网的qwen3_0_6_B模型,放到路径/data/local/tmp/mnn_models/下也无法加载本地模型 λ adb shell ls /data/local/tmp/mnn_models/qwen3_0_6_B config.json embeddings_bf16.bin llm.mnn llm.mnn.json llm.mnn.weight llm_config.json tokenizer.txt

suyu416416 avatar Jun 16 '25 12:06 suyu416416

@Juude

suyu416416 avatar Jun 16 '25 12:06 suyu416416

private val localModelList: MutableList<ModelItem> by lazy {
    val result = mutableListOf<ModelItem>()
    try {
        val modelsDir = File("/data/local/tmp/mnn_models/")
        if (modelsDir.exists() && modelsDir.isDirectory) {
            modelsDir.listFiles()?.forEach { modelDir ->
                if (modelDir.isDirectory && File(modelDir, "config.json").exists()) {
                    val modelPath = modelDir.absolutePath
                    val modelName = "local/${modelDir.name}"
                    result.add(ModelItem.fromLocalModel(modelName, modelPath))
                }
            }
        }
    } catch (e: Exception) {
        android.util.Log.e("ModelUtils", "Failed to load models from /data/local/tmp/mnn_models/", e)
    }
    result
}

调试下这里的代码, 看下 adb logcat 有没有 ModelUtils 相关的报错。

Juude avatar Jun 16 '25 13:06 Juude

@Juude 使用过程如下,输入下面命令将 模型文件 push到指定目录下 adb shell mkdir -p /data/local/tmp/mnn_models && adb push G:\ChromeDownload\qwen3_0_6_B /data/local/tmp/mnn_models 输入下面命令安装apk adb install G:\ChromeDownload\mnn_chat_0_5_1.apk 安装 0.5.1版本会直接闪退,log如下 ===== Java Crash ===== Thread: main java.lang.RuntimeException: java.lang.reflect.InvocationTargetException at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:610) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600) ... 1 more Caused by: java.nio.file.AccessDeniedException: /data/local/tmp/mnn_models/qwen3_0_6_B at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:447) at java.nio.file.Files.newDirectoryStream(Files.java:457) at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300) at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322) at java.nio.file.Files.walkFileTree(Files.java:2662) at com.alibaba.mnnllm.android.utils.FileUtils.getFileSize(FileUtils.kt:191) at com.alibaba.mnnllm.android.utils.FileUtils.getFileSizeString(FileUtils.kt:182) at com.alibaba.mnnllm.android.modelist.ModelItemHolder.getFileSizeString(ModelItemHolder.kt:69) at com.alibaba.mnnllm.android.modelist.ModelItemHolder.bind(ModelItemHolder.kt:99) at com.alibaba.mnnllm.android.modelist.ModelListAdapter.onBindViewHolder(ModelListAdapter.kt:42) at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065) at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107) at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012) at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540) at android.view.View.measure(View.java:28654) at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735) at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:28654) at androidx.core.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1941) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.core.widget.NestedScrollView.onMeasure(NestedScrollView.java:650) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760) at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:100) at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:2365) at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:831) at android.view.View.measure(View.java:28654) at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1156) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) at android.view.View.measure(View.java:28654) at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) at com.android.internal.policy.DecorView.onMeasure(DecorView.java:808) at android.view.View.measure(View.java:28654) at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:5412) at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3653) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4003) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3311) at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11493) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1621) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1630) at android.view.Choreographer.doCallbacks(Choreographer.java:1154) at android.view.Choreographer.doFrame(Choreographer.java:1043) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1604) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:282) at android.os.Looper.loop(Looper.java:387) at android.app.ActivityThread.main(ActivityThread.java:9500) ... 3 more

===== Logcat (main) ===== --------- beginning of main 06-17 10:45:25.608 I/.mnnllm.android(19528): isSwordfishLaunchAppEnabled_ 1 isSwordfishInstallAppEnabled_ 1 06-17 10:45:25.608 I/.mnnllm.android(19528): Late-enabling -Xcheck:jni 06-17 10:45:25.623 E/.mnnllm.android(19528): Unknown bits set in runtime_flags: 0x40000000 06-17 10:45:25.623 I/.mnnllm.android(19528): Using CollectorTypeCMC GC. 06-17 10:45:25.627 D/nativeloader(19528): Load libframework-connectivity-tiramisu-jni.so using APEX ns com_android_tethering for caller /apex/com.android.tethering/javalib/framework-connectivity-t.jar: ok --------- beginning of system 06-17 10:45:25.629 D/ActivityThread(19528): new ActivityThread and attach 06-17 10:45:25.630 W/libc (19528): Access denied finding property "persist.vendor.sys.activitylog" 06-17 10:45:25.630 I/OneTrace(19528): Mark active for pid=19528? true 06-17 10:45:25.630 D/cutils-dev(19528): otrace_set_tracing_enabled? true tag:0 06-17 10:45:25.630 D/cutils-dev(19528): properties changed in otrace_seq_number_changed! 06-17 10:45:25.631 D/ActivityThread(19528): attachApplication 06-17 10:45:25.640 D/ActivityThread(19528): bindApplication:com.alibaba.mnnllm.android 06-17 10:45:25.644 D/ActivityThread(19528): scheduleTransaction:ResumeActivityItem{mActivityToken=android.os.BinderProxy@23918d7,procState=-1,updateProcState=false,isForward=true,shouldSendCompatFakeFocus=false} 06-17 10:45:25.644 D/ActivityThread(19528): scheduleTransaction:null 06-17 10:45:25.645 D/OplusActivityManager(19528): get AMS extension: android.os.BinderProxy@52b45c4 06-17 10:45:25.648 D/ActivityThread(19528): handle BIND_APPLICATION 06-17 10:45:25.648 D/CompactWindowAppManager(19528): initCompactApplicationInfo CompactMode: , NormalMode: 06-17 10:45:25.651 D/OplusScrollToTopManager(19528): setIsInWhiteList false 06-17 10:45:25.651 D/OplusViewDebugManager(19528): OplusViewDebugManager Constructor android.view.debug.OplusViewDebugManager@89b9be2 [mHasViewDebugProperty true] [mHasMsgDebugProperty false] [DEBUG false] [EXTRAINFOENABLE false] [LIGHT_OS false] 06-17 10:45:25.653 D/CompatChangeReporter(19528): Compat change id reported: 242716250; UID 10360; state: ENABLED 06-17 10:45:25.655 D/FontUtils(19528): updateFontVariationConfiguration: mFontVariation = 550 mFontVariationStatus = 1 mPackageName = null mFontVariationAdaption = 0 06-17 10:45:25.657 D/ApplicationLoaders(19528): Returning zygote-cached class loader: /system_ext/framework/androidx.window.extensions.jar 06-17 10:45:25.657 D/ApplicationLoaders(19528): Returning zygote-cached class loader: /system_ext/framework/androidx.window.sidecar.jar 06-17 10:45:25.658 W/ziparchive(19528): Unable to open '/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.dm': No such file or directory 06-17 10:45:25.658 W/ziparchive(19528): Unable to open '/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.dm': No such file or directory 06-17 10:45:25.879 I/Quality (19528): Odex status:io-error-no-oat filter:run-from-apk reason:unknown location:/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.apk cost:221 06-17 10:45:25.880 D/nativeloader(19528): Configuring clns-7 for other apk /data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.apk. target_sdk_version=34, uses_libraries=libOpenCL.so, library_path=/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/lib/arm64:/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.alibaba.mnnllm.android 06-17 10:45:25.886 V/GraphicsEnvironment(19528): Currently set values for: 06-17 10:45:25.886 V/GraphicsEnvironment(19528): angle_gl_driver_selection_pkgs=[] 06-17 10:45:25.886 V/GraphicsEnvironment(19528): angle_gl_driver_selection_values=[] 06-17 10:45:25.886 V/GraphicsEnvironment(19528): Global.Settings values are invalid: number of packages: 0, number of values: 0 06-17 10:45:25.886 V/GraphicsEnvironment(19528): Updatable production driver is not supported on the device. 06-17 10:45:25.888 D/ResourcesManagerExtImpl(19528): applyConfigurationToAppResourcesLocked app.getDisplayId() return callback.displayId:-1 06-17 10:45:25.903 D/nativeloader(19528): Load libSchedAssistJni.so using system ns (caller=/system/framework/oplus-framework.jar): ok 06-17 10:45:25.903 D/ExtensionsLoader(19528): createInstance(64bit) : createExtendedFactory 06-17 10:45:25.903 D/ExtensionsLoader(19528): Opened libSchedAssistExtImpl.so 06-17 10:45:25.904 E/SchedAssist(19528): sysOpen failed with error=Permission denied 06-17 10:45:25.904 E/SchedAssist(19528): open sharedFd failed with error=Permission denied 06-17 10:45:25.904 E/SchedAssist(19528): open sharedFd failed with error=Permission denied 06-17 10:45:25.904 E/SchedAssist(19528): open sharedFd failed with error=Permission denied 06-17 10:45:25.904 E/SchedAssist(19528): open sharedFd failed with error=Permission denied 06-17 10:45:25.906 D/OplusGraphicsEvent(19528): OplusGraphicsEventListener create now! 06-17 10:45:25.906 D/OplusGraphicsEvent(19528): addEventListener success! 06-17 10:45:25.907 D/ScrollOptim ConfigManager: initOptConfig: pkg= com.alibaba.mnnllm.android, mOptEnable= true, mAnimAheadEnable= true, mInsertDefaultNum= 1, mFrameInsertEnableList= {}, mSCEnableList= [] 06-17 10:45:25.909 D/FontUtils(19528): updateFontVariationConfiguration: mFontVariation = 550 mFontVariationStatus = 1 mPackageName = com.alibaba.mnnllm.android mFontVariationAdaption = 0 06-17 10:45:25.934 D/nativeloader(19528): Load /data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.apk!/lib/arm64-v8a/libmnnllmapp.so using ns clns-7 from class loader (caller=/data/app/~~l24fUZTuIpGrShoV97-mug==/com.alibaba.mnnllm.android-PPW4BrkYvI3z2WxFdtS_Ag==/base.apk!classes10.dex): ok 06-17 10:45:25.934 D/MNN_DEBUG(19528): JNI_OnLoad 06-17 10:45:25.935 D/ActivityThread(19528): finishAttachApplication 06-17 10:45:25.937 I/HWUI (19528): SupportApps size 0 06-17 10:45:25.938 D/ExtensionsLoader(19528): createInstance(64bit) : createExtendedFactory 06-17 10:45:25.938 D/ExtensionsLoader(19528): Opened libSchedAssistExtImpl.so 06-17 10:45:25.940 D/ResourcesManagerExtImpl(19528): applyConfigurationToAppResourcesLocked app.getDisplayId() return callback.displayId:0 06-17 10:45:25.953 D/AppCompatDelegate(19528): Checking for metadata for AppLocalesMetadataHolderService : Service not found 06-17 10:45:25.959 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setColorMode:1363 android.app.Activity.attach:9122 android.app.ActivityThread.performLaunchActivity:4311 android.app.ActivityThread.handleLaunchActivity:4569 android.app.servertransaction.LaunchActivityItem.execute:126 06-17 10:45:25.959 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setPreferMinimalPostProcessing:1516 android.app.Activity.attach:9123 android.app.ActivityThread.performLaunchActivity:4311 android.app.ActivityThread.handleLaunchActivity:4569 android.app.servertransaction.LaunchActivityItem.execute:126 06-17 10:45:25.974 D/WindowOnBackDispatcher(19528): App: com.alibaba.mnnllm.android requestsPredictiveBack=false 06-17 10:45:25.975 I/oplus.android.OplusFrameworkFactoryImpl(19528): Unknow feature:IOplusTextViewRTLUtilForUG 06-17 10:45:25.976 D/nativeloader(19528): Load liboplushwui_jni.so using system ns (caller=/system/framework/oplus-framework.jar): ok 06-17 10:45:25.980 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setFlags:1323 com.android.internal.policy.PhoneWindow.generateLayout:2551 com.android.internal.policy.PhoneWindow.installDecor:2934 com.android.internal.policy.PhoneWindow.getDecorView:2260 androidx.appcompat.app.AppCompatActivity.initViewTreeOwners:221 06-17 10:45:25.980 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setFlags:1323 com.android.internal.policy.PhoneWindow.generateLayout:2594 com.android.internal.policy.PhoneWindow.installDecor:2934 com.android.internal.policy.PhoneWindow.getDecorView:2260 androidx.appcompat.app.AppCompatActivity.initViewTreeOwners:221 06-17 10:45:25.980 D/PhoneWindow(19528): Min width minor: null, major: null 06-17 10:45:25.980 D/OplusWindowManager(19528): get WMS extension: android.os.BinderProxy@84c56f0 06-17 10:45:25.980 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setFlags:1323 com.android.internal.policy.PhoneWindow.generateLayout:2695 com.android.internal.policy.PhoneWindow.installDecor:2934 com.android.internal.policy.PhoneWindow.getDecorView:2260 androidx.appcompat.app.AppCompatActivity.initViewTreeOwners:221 06-17 10:45:25.985 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:android.view.Window.setDefaultWindowFormat:2215 com.android.internal.policy.PhoneWindow.setDefaultWindowFormat:4004 com.android.internal.policy.DecorView.drawableChanged:1904 com.android.internal.policy.DecorView.finishChanging:1031 com.android.internal.policy.PhoneWindow.generateLayout:2911 06-17 10:45:25.988 W/.mnnllm.android(19528): Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed) 06-17 10:45:25.991 D/ScrollOptimizationHelper(19528): can't find the config file for optimizaiton 06-17 10:45:25.991 D/ScrollOptimizationHelper(19528): will not debug for debug is false 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:25.991 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.004 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.004 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.004 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.007 E/OplusCustomizeRestrictionManager(19528): sInstance is null, start a new sInstance 06-17 10:45:26.015 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.015 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.015 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.042 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.042 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.042 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.045 I/DynamicFramerate FRTCConfigManager: initFrameRateConfig: 06-17 10:45:26.045 I/DynamicFramerate FRTCConfigManager: levels: [120, 60] 06-17 10:45:26.045 I/DynamicFramerate FRTCConfigManager: thresholds: [200] 06-17 10:45:26.045 I/DynamicFramerate FRTCConfigManager: FRTCConfigManager: FRTC_CAPABILITY = 120, package name = com.alibaba.mnnllm.android, WINDOW_ANIMATION_SPEED_RATE = 10, SCROLL_ANIMATION_SPEED_RATE = 20, PACKAGE_ENABLE = false 06-17 10:45:26.045 I/DynamicFramerate DynamicFrameRateController: init info: mPackageName = com.alibaba.mnnllm.android, mIsEnabled = false 06-17 10:45:26.065 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.065 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.065 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.065 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.066 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.066 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.066 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.066 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.066 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.067 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.067 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.067 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.067 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.067 I/.mnnllm.android(19528): ThrowNoClassDefFoundError when open swordfish 06-17 10:45:26.081 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.081 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.081 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.088 W/.mnnllm.android(19528): Accessing hidden method Ljava/lang/invoke/MethodHandles$Lookup;->(Ljava/lang/Class;I)V (unsupported, reflection, allowed) 06-17 10:45:26.128 D/TrafficStats(19528): tagSocket(119) with statsTag=0xffffffff, statsUid=-1 06-17 10:45:26.191 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.191 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.191 I/oplus.android.OplusFrameworkFactoryImpl(19528): get feature:IOplusDynamicVsyncFeature 06-17 10:45:26.194 V/OnBackInvokedDispatcher(19528): Proxy register androidx.activity.OnBackPressedDispatcher$Api34Impl$createOnBackAnimationCallback$1@818d42f. mActualDispatcher=null 06-17 10:45:26.194 D/WindowOnBackDispatcher(19528): App: com.alibaba.mnnllm.android requestsPredictiveBack=false 06-17 10:45:26.194 W/WindowOnBackDispatcher(19528): OnBackInvokedCallback is not enabled for the application. 06-17 10:45:26.194 W/WindowOnBackDispatcher(19528): Set 'android:enableOnBackInvokedCallback="true"' in the application manifest. 06-17 10:45:26.194 D/PhoneWindow(19528): dispatchWindowAttributesChanged callers:com.android.internal.policy.PhoneWindow.setTitle:710 com.android.internal.policy.PhoneWindow.setTitle:689 android.app.Activity.onTitleChanged:7963 androidx.appcompat.app.AppCompatActivity.onTitleChanged:289 android.app.Activity.onPostCreate:2112 06-17 10:45:26.195 D/ScrollOptim SceneManager: updateCurrentActivity: mCurrentActivityName=com.alibaba.mnnllm.android.main.MainActivity, isOptEnable=true, isAnimAheadEnable=true, isFrameInsertEnable=true, InsertNum=1, isEnabledForScrollChanged=false 06-17 10:45:26.195 D/ActivityThread(19528): ComponentInfo{com.alibaba.mnnllm.android/com.alibaba.mnnllm.android.main.MainActivity} checkFinished=false 2 06-17 10:45:26.195 D/ResourcesManagerExtImpl(19528): applyConfigurationToAppResourcesLocked app.getDisplayId() return callback.displayId:0 06-17 10:45:26.208 I/Quality (19528): SlowSqliteOp:execute,/data/user/0/com.alibaba.mnnllm.android/databases/chat.db,false,false,11 06-17 10:45:26.211 D/OplusInputMethodUtil(19528): init sDebug to false, init sDebugIme to false, init sAlwaysOn to false 06-17 10:45:26.211 D/OplusInputMethodUtil(19528): updateDebugToClass InputMethodManager.DEBUG = false 06-17 10:45:26.211 D/OplusInputMethodUtil(19528): updateDebugToClass ImeFocusController.DEBUG = false 06-17 10:45:26.211 D/OplusInputMethodUtil(19528): updateDebugToClass InsetsController.DEBUG = false 06-17 10:45:26.211 D/OplusInputMethodUtil(19528): updateDebugToClass BaseInputConnection.DEBUG = false 06-17 10:45:26.216 D/WindowManager(19528): Add to mViews: com.android.internal.policy.DecorView{b9331c3 I.E...... R.....ID 0,0-0,0 alpha=1.0 viewInfo = }[MainActivity],pkg= com.alibaba.mnnllm.android 06-17 10:45:26.217 D/ExtensionsLoader(19528): createInstance(64bit) : createExtendedFactory 06-17 10:45:26.217 D/TrafficStats(19528): tagSocket(128) with statsTag=0xffffffff, statsUid=-1 06-17 10:45:26.217 D/ExtensionsLoader(19528): Opened libhwuiextimpl.so 06-17 10:45:26.217 D/skia (19528): setRusSupported enable 0 06-17 10:45:26.217 D/ExtensionsLoader(19528): createInstance(64bit) : createExtendedFactory 06-17 10:45:26.217 D/ExtensionsLoader(19528): Opened libSchedAssistExtImpl.so 06-17 10:45:26.223 D/InsetsController(19528): onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 1080, 2376), mDisplayCutout=DisplayCutout{insets=Rect(0, 120 - 0, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(512, 0 - 569, 120), Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2376 physicalDisplayWidth=1440 physicalDisplayHeight=3168 density={4.0} cutoutSpec={M -38,0 L -38,160 L 38,160 L 38,0 Z} rotation={0} scale={1.0} physicalPixelDisplaySizeRatio={0.75}}} sideOverrides={}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=84, center=Point(84, 84)}, RoundedCorner{position=TopRight, radius=84, center=Point(996, 84)}, RoundedCorner{position=BottomRight, radius=84, center=Point(996, 2292)}, RoundedCorner{position=BottomLeft, radius=84, center=Point(84, 2292)}]} mRoundedCornerFrame=Rect(0, 0 - 1080, 2376), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(852, 0 - 1092, 120) rotation=0}, mDisplayShape=DisplayShape{ spec=1406003047 displayWidth=1440 displayHeight=3168 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}, mExtraDisplayCutoutMode=-1, mSources= { InsetsSource: {3 mType=ime mFrame=[0,0][0,0] mVisible=false mFlags= mSideHint=NONE mBoundingRects=null}, InsetsSource: {27 mType=displayCutout mFrame=[0,0][1080,120] mVisible=true mFlags= mSideHint=TOP mBoundingRects=null}, InsetsSource: {5dc70001 mType=navigationBars mFrame=[0,2328][1080,2376] mVisible=true mFlags=SUPPRESS_SCRIM mSideHint=BOTTOM mBoundingRects=null}, InsetsSource: {5dc70004 mType=systemGestures mFrame=[0,0][90,2376] mVisible=true mFlags= mSideHint=LEFT mBoundingRects=null}, InsetsSource: {5dc70005 mType=mandatorySystemGestures mFrame=[0,2280][1080,2376] mVisible=true mFlags= mSideHint=BOTTOM mBoundingRects=null}, InsetsSource: {5dc70006 mType=tappableElement mFrame=[0,0][0,0] mVisible=true mFlags= mSideHint=NONE mBoundingRects=null}, InsetsSource: {5dc70024 mType=systemGestures mFrame=[990,0][1080,2376] mVisible=true mFlags= mSideHint=RIGHT mBoundingRects=null}, InsetsSource: {77670000 mType=statusBars mFrame=[0,0][1080,120] mVisible=true mFlags= mSideHint=TOP mBoundingRects=null}, InsetsSource: {77670005 mType=mandatorySystemGestures mFrame=[0,0][1080,156] mVisible=true mFlags= mSideHint=TOP mBoundingRects=null}, InsetsSource: {77670006 mType=tappableElement mFrame=[0,0][1080,120] mVisible=true mFlags= mSideHint=TOP mBoundingRects=null} } 06-17 10:45:26.224 D/OnBackInvokedDispatcher(19528): ViewRootImpl.registerBackCallbackOnWindow. Dispatcher:android.window.WindowOnBackInvokedDispatcher@ad88abe Package:com.alibaba.mnnllm.android IWindow:android.view.OplusViewRootImplHooks$ColorW@56d271f Session:android.view.IWindowSession$Stub$Proxy@25f4a6c 06-17 10:45:26.224 D/TrafficStats(19528): tagSocket(120) with statsTag=0xffffffff, statsUid=-1 06-17 10:45:26.224 D/ViewRootImplExtImpl(19528): onDisplayChanged -1 for VRI android.view.ViewRootImpl@b2ca158 06-17 10:45:26.225 D/ActivityThread(19528): EXECUTE_TRANSACTION:ResumeActivityItem{mActivityToken=android.os.BinderProxy@23918d7,procState=-1,updateProcState=false,isForward=true,shouldSendCompatFakeFocus=false} 06-17 10:45:26.225 D/ResourcesManagerExtImpl(19528): applyConfigurationToAppResourcesLocked app.getDisplayId() return callback.displayId:0 06-17 10:45:26.225 D/ActivityThread(19528): EXECUTE_TRANSACTION:null 06-17 10:45:26.229 I/Choreographer(19528): Skipped 38 frames! The application may be doing too much work on its main thread. 06-17 10:45:26.230 E/OplusBracketLog(19528): [OplusViewMirrorManager] updateHostViewRootIfNeeded, not support android.view.ViewRootImpl@b2ca158 06-17 10:45:26.231 V/OnBackInvokedDispatcher(19528): Proxy setActual android.window.WindowOnBackInvokedDispatcher@ad88abe. Current null 06-17 10:45:26.231 V/OnBackInvokedDispatcher(19528): Proxy transferring 0 callbacks to android.window.WindowOnBackInvokedDispatcher@ad88abe 06-17 10:45:26.235 D/WindowOnBackDispatcher(19528): App: com.alibaba.mnnllm.android requestsPredictiveBack=false 06-17 10:45:26.235 D/WindowOnBackDispatcher(19528): App: com.alibaba.mnnllm.android requestsPredictiveBack=false 06-17 10:45:26.254 D/AndroidRuntime(19528): Shutting down VM --------- beginning of crash 06-17 10:45:26.255 E/AndroidRuntime(19528): FATAL EXCEPTION: main 06-17 10:45:26.255 E/AndroidRuntime(19528): Process: com.alibaba.mnnllm.android, PID: 19528 06-17 10:45:26.255 E/AndroidRuntime(19528): java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:610) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005) 06-17 10:45:26.255 E/AndroidRuntime(19528): Caused by: java.lang.reflect.InvocationTargetException 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.lang.reflect.Method.invoke(Native Method) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600) 06-17 10:45:26.255 E/AndroidRuntime(19528): ... 1 more 06-17 10:45:26.255 E/AndroidRuntime(19528): Caused by: java.nio.file.AccessDeniedException: /data/local/tmp/mnn_models/qwen3_0_6_B 06-17 10:45:26.255 E/AndroidRuntime(19528): at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:447) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.Files.newDirectoryStream(Files.java:457) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.Files.walkFileTree(Files.java:2662) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.utils.FileUtils.getFileSize(FileUtils.kt:191) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.utils.FileUtils.getFileSizeString(FileUtils.kt:182) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelItemHolder.getFileSizeString(ModelItemHolder.kt:69) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelItemHolder.bind(ModelItemHolder.kt:99) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelListAdapter.onBindViewHolder(ModelListAdapter.kt:42) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.core.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1941) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.core.widget.NestedScrollView.onMeasure(NestedScrollView.java:650) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:100) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:2365) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:831) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1156) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at com.android.internal.policy.DecorView.onMeasure(DecorView.java:808) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:5412) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3653) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4003) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3311) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11493) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1621) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1630) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer.doCallbacks(Choreographer.java:1154) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer.doFrame(Choreographer.java:1043) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1604) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Handler.handleCallback(Handler.java:959) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Handler.dispatchMessage(Handler.java:100) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Looper.loopOnce(Looper.java:282) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Looper.loop(Looper.java:387) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.app.ActivityThread.main(ActivityThread.java:9500) 06-17 10:45:26.256 E/AndroidRuntime(19528): ... 3 more

===== Logcat (crash buffer) ===== --------- beginning of crash 06-17 10:45:26.255 E/AndroidRuntime(19528): FATAL EXCEPTION: main 06-17 10:45:26.255 E/AndroidRuntime(19528): Process: com.alibaba.mnnllm.android, PID: 19528 06-17 10:45:26.255 E/AndroidRuntime(19528): java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:610) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005) 06-17 10:45:26.255 E/AndroidRuntime(19528): Caused by: java.lang.reflect.InvocationTargetException 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.lang.reflect.Method.invoke(Native Method) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:600) 06-17 10:45:26.255 E/AndroidRuntime(19528): ... 1 more 06-17 10:45:26.255 E/AndroidRuntime(19528): Caused by: java.nio.file.AccessDeniedException: /data/local/tmp/mnn_models/qwen3_0_6_B 06-17 10:45:26.255 E/AndroidRuntime(19528): at sun.nio.fs.UnixFileSystemProvider.newDirectoryStream(UnixFileSystemProvider.java:447) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.Files.newDirectoryStream(Files.java:457) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.FileTreeWalker.visit(FileTreeWalker.java:300) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.FileTreeWalker.walk(FileTreeWalker.java:322) 06-17 10:45:26.255 E/AndroidRuntime(19528): at java.nio.file.Files.walkFileTree(Files.java:2662) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.utils.FileUtils.getFileSize(FileUtils.kt:191) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.utils.FileUtils.getFileSizeString(FileUtils.kt:182) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelItemHolder.getFileSizeString(ModelItemHolder.kt:69) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelItemHolder.bind(ModelItemHolder.kt:99) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.alibaba.mnnllm.android.modelist.ModelListAdapter.onBindViewHolder(ModelListAdapter.kt:42) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:7065) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:7107) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.tryBindViewHolderByDeadline(RecyclerView.java:6012) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:6279) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6118) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:6114) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:2303) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1627) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1587) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:665) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:4134) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.recyclerview.widget.RecyclerView.onMeasure(RecyclerView.java:3540) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:735) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:481) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.core.widget.NestedScrollView.measureChildWithMargins(NestedScrollView.java:1941) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.core.widget.NestedScrollView.onMeasure(NestedScrollView.java:650) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasureChild(CoordinatorLayout.java:760) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.google.android.material.appbar.HeaderScrollingViewBehavior.onMeasureChild(HeaderScrollingViewBehavior.java:100) 06-17 10:45:26.255 E/AndroidRuntime(19528): at com.google.android.material.appbar.AppBarLayout$ScrollingViewBehavior.onMeasureChild(AppBarLayout.java:2365) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.coordinatorlayout.widget.CoordinatorLayout.onMeasure(CoordinatorLayout.java:831) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at androidx.drawerlayout.widget.DrawerLayout.onMeasure(DrawerLayout.java:1156) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.255 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at androidx.appcompat.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1608) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.measureVertical(LinearLayout.java:878) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.LinearLayout.onMeasure(LinearLayout.java:721) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:7138) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.widget.FrameLayout.onMeasure(FrameLayout.java:194) 06-17 10:45:26.256 E/AndroidRuntime(19528): at com.android.internal.policy.DecorView.onMeasure(DecorView.java:808) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.View.measure(View.java:28654) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:5412) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:3653) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4003) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3311) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11493) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1621) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1630) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer.doCallbacks(Choreographer.java:1154) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer.doFrame(Choreographer.java:1043) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1604) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Handler.handleCallback(Handler.java:959) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Handler.dispatchMessage(Handler.java:100) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Looper.loopOnce(Looper.java:282) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.os.Looper.loop(Looper.java:387) 06-17 10:45:26.256 E/AndroidRuntime(19528): at android.app.ActivityThread.main(ActivityThread.java:9500) 06-17 10:45:26.256 E/AndroidRuntime(19528): ... 3 more

suyu416416 avatar Jun 17 '25 03:06 suyu416416

@Juude hello,上面这个报错有分析出是什么原因,要怎么解决吗~

suyu416416 avatar Jun 18 '25 06:06 suyu416416

FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。

Juude avatar Jun 18 '25 11:06 Juude

FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。 @Juude 感谢~~~手机型号 OPPO Reno14 & OPPO FIND X7Ultra, 似乎是 /data/local/tmp/mnn_models 这个路径没有足够的权限,adb shell chmod -R 777 /data/local/tmp/mnn_models/ 后,可以正常访问该路径后本地模型就正常显示在模型列表了~

suyu416416 avatar Jun 19 '25 09:06 suyu416416

FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。 @Juude 感谢~~~手机型号 OPPO Reno14 & OPPO FIND X7Ultra, 似乎是 /data/local/tmp/mnn_models 这个路径没有足够的权限,adb shell chmod -R 777 /data/local/tmp/mnn_models/ 后,可以正常访问该路径后本地模型就正常显示在模型列表了~

那应该是不同手机对这个目录的权限设置不一样

Juude avatar Jun 19 '25 09:06 Juude