快速添加已经转换为mnn的模型
如题,希望类似于基于llama.cpp的本地推理软件那样直接添加转换好的模型,或者建立一个扩展列表,用户进行上传或标记网络现有模型,开发者进行稍微的审核
本地模型我们会增加个路径,只要 push 到相关路径即可运行本地模型。
如果要分享给其他用户使用,可以直接在 github 上贴出你们的模型链接,运行截图等信息。 合适的话我们可以提供给其他用户使用。
@Juude 可以考虑增加一个开放列表 允许其他用户的modelscope/huggingface等模型链接加入其中,展示在下载列表里
是的,可以在 modelscope 上放个列表。
那太好了,谢谢你们
---原始邮件--- 发件人: @.> 发送时间: 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: @.***>
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.
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,在模型列表中并没有出现对应的本地模型,请问还需要什么别的操作吗?
@Juude
adb shell ls /data/local/tmp/mnn_models/model 看下显示
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
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
@Juude
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 使用过程如下,输入下面命令将 模型文件 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;->
===== 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
@Juude hello,上面这个报错有分析出是什么原因,要怎么解决吗~
FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。
FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。 @Juude 感谢~~~手机型号 OPPO Reno14 & OPPO FIND X7Ultra, 似乎是 /data/local/tmp/mnn_models 这个路径没有足够的权限,adb shell chmod -R 777 /data/local/tmp/mnn_models/ 后,可以正常访问该路径后本地模型就正常显示在模型列表了~
FileUtils.getFileSize 这个方法改为直接返回 0 试试。 另外你的机器是什么型号 。 @Juude 感谢~~~手机型号 OPPO Reno14 & OPPO FIND X7Ultra, 似乎是 /data/local/tmp/mnn_models 这个路径没有足够的权限,adb shell chmod -R 777 /data/local/tmp/mnn_models/ 后,可以正常访问该路径后本地模型就正常显示在模型列表了~
那应该是不同手机对这个目录的权限设置不一样