当我加载配置文件时报错:Call to undefined method CI_Config::config()

在CI框架中遇到加载配置文件时的错误,提示Call to undefined method CI_Config::config()。实际上,应该使用$this->config->item()来加载配置项。本文介绍了两种加载配置文件的方法:通过加载函数和在autoload.php中设置默认加载。

CI框架中,平时都用$this->config->config()  来加载配置文件,当我添加新的配置信息时,使用报错。

关于以上错误,只需用$this->config->item()加载配置项即可。

那就好好整理下关于配置过程:

CI框架的配置信息被存储在$config数组中,可以添加自己的配置信息 或者 配置文件到$config
使用配置文件(方法一)$this->config->load('filename');//加载配置文件
      $this->config->item('xxx');//获取配置信息

使用配置文件(方法二)    在config文件夹中的autoload.php中设置默认加载。

module KanbansHelper def kanban_contextual_menu(&block) menu = KanbanContextualMenu.new( kanban: @kanban, user: @user, view_context: self # 传递当前 Helper 实例作为视图上下文 ) concat(menu.display(capture(menu, &block))) end def name_to_css(name) name.gsub(' ','-').downcase end def jquery_dialog_div(title=:field_issue) "<div id='dialog-window' title='#{ l(title) }'></div>" end def render_pane_to_js(pane, user=nil) if Kanban.valid_panes.include?(pane) return render_to_string(:partial => pane, :locals => {:user => user }) else '' end end # Returns the CSS class for jQuery to hook into. Current users are # allowed to Drag and Drop items into their own list, but not other # people's lists def allowed_to_assign_staffed_issue_to(user) if allowed_to_manage? || User.current == user 'allowed' else '' end end def over_pane_limit?(limit, counter) if !counter.nil? && !limit.nil? && counter.to_i >= limit.to_i # 0 based counter return 'over-limit' else return '' end end # Was the last journal with a note created by someone other than the # assigned to user? def updated_note_on_issue?(issue) if issue && issue.journals.present? last_journal_with_note = issue.journals.select {|journal| journal.notes.present?}.last if last_journal_with_note && issue.assigned_to_id != last_journal_with_note.user_id last_journal_with_note else return false end end end def issue_updated_note_icon(issue) if last_journal = updated_note_on_issue?(issue) image_tag('comment.png', :class => "updated-note issue-show-popup issue-id-#{h(issue.id)}", :id => "issue-#{h(issue.id)}", :alt => l(:kanban_text_updated_issue), :title => h(last_journal.notes)) end end def kanban_issue_css_classes(issue) css = 'kanban-issue ' + issue.css_classes if User.current.logged? && !issue.assigned_to_id.nil? && issue.assigned_to_id != User.current.id css << ' assigned-to-other' end css << ' issue-behind-schedule' if issue.behind_schedule? css << ' issue-overdue' if issue.overdue? css << ' parent-issue' if issue.root? && issue.children.count > 0 css end def issue_icon_link(issue) if Setting.gravatar_enabled? && issue.assigned_to img = avatar(issue.assigned_to, { :class => 'gravatar icon-gravatar', :size => 10, :title => l(:field_assigned_to) + ": " + issue.assigned_to.name }) link_to(img, :controller => 'issues', :action => 'show', :id => issue) else link_to(image_tag('ticket.png', :style => 'float:left;'), :controller => 'issues', :action => 'show', :id => issue) end end def column_configured?(column) case column when :incoming KanbanPane::IncomingPane.configured? when :backlog KanbanPane::BacklogPane.configured? when :selected KanbanPane::QuickPane.configured? || KanbanPane::SelectedPane.configured? when :staffed true # always end end # Calculates the width of the column. Max of 96 since they need # some extra for the borders. def column_width(column) # weights of the columns column_ratios = { :incoming => 1, :backlog => 1, :selected => 1, :staffed => 4 } return 0.0 if column == :incoming && !column_configured?(:incoming) return 0.0 if column == :backlog && !column_configured?(:backlog) return 0.0 if column == :selected && !column_configured?(:selected) visible = 0 visible += column_ratios[:incoming] if column_configured?(:incoming) visible += column_ratios[:backlog] if column_configured?(:backlog) visible += column_ratios[:selected] if column_configured?(:selected) visible += column_ratios[:staffed] if column_configured?(:staffed) return ((column_ratios[column].to_f / visible) * 96).round(2) end def my_kanban_column_width(column) column_ratios = { :project => 1, :testing => 1, :active => 1, :selected => 1, :backlog => 1 } # Vertical column if column == :incoming return (KanbanPane::IncomingPane.configured? ? 100.0 : 0.0) end # Inside of Project, max width if column == :finished || column == :canceled return 100.0 end return 0.0 if column == :active && !KanbanPane::ActivePane.configured? return 0.0 if column == :testing && !KanbanPane::TestingPane.configured? return 0.0 if column == :selected && !KanbanPane::SelectedPane.configured? return 0.0 if column == :backlog && !KanbanPane::BacklogPane.configured? visible = 0 visible += column_ratios[:project] visible += column_ratios[:active] if KanbanPane::ActivePane.configured? visible += column_ratios[:testing] if KanbanPane::TestingPane.configured? visible += column_ratios[:selected] if KanbanPane::SelectedPane.configured? visible += column_ratios[:backlog] if KanbanPane::BacklogPane.configured? return ((column_ratios[column].to_f / visible) * 96).round(2) end # Calculates the width of the column. Max of 96 since they need # some extra for the borders. def staffed_column_width(column) # weights of the columns column_ratios = { :user => 1, :active => 2, :testing => 2, :finished => 2, :canceled => 2 } return 0.0 if column == :active && !KanbanPane::ActivePane.configured? return 0.0 if column == :testing && !KanbanPane::TestingPane.configured? return 0.0 if column == :finished && !KanbanPane::FinishedPane.configured? return 0.0 if column == :canceled && !KanbanPane::CanceledPane.configured? visible = 0 visible += column_ratios[:user] visible += column_ratios[:active] if KanbanPane::ActivePane.configured? visible += column_ratios[:testing] if KanbanPane::TestingPane.configured? visible += column_ratios[:finished] if KanbanPane::FinishedPane.configured? visible += column_ratios[:canceled] if KanbanPane::CanceledPane.configured? return ((column_ratios[column].to_f / visible) * 96).round(2) end def issue_url(issue) url_for(:controller => 'issues', :action => 'show', :id => issue) end def showing_current_user_kanban? @user == User.current end # Renders the title for the "Incoming" project. It can be linked as: # * New Issue jQuery dialog (user has permission to add issues) # * Link to the url configured in the plugin (plugin is configured with a url) # * No link at all def incoming_title if Setting.plugin_redmine_kanban['panes'].present? && Setting.plugin_redmine_kanban['panes']['incoming'].present? && Setting.plugin_redmine_kanban['panes']['incoming']['url'].present? href_url = Setting.plugin_redmine_kanban['panes']['incoming']['url'] incoming_project = extract_project_from_url(href_url) link_name = incoming_project.present? ? incoming_project.name : l(:kanban_text_incoming) else href_url = '' link_name = l(:kanban_text_incoming) end if User.current.allowed_to?(:add_issues, nil, :global => true) link_to(link_name, href_url, :class => 'new-issue-dialog') elsif href_url.present? link_to(link_name, href_url) else link_name end end # Given a url, extract the project record from it. # Will return nil if the url isn't a link to a project or the url can't be # recognized def extract_project_from_url(url) project = nil link_path = url. sub(request.host, ''). # Remove host sub(/https?:\/\//,''). # Protocol sub(/\?.*/,'') # Query string begin route = ActionController::Routing::Routes.recognize_path(link_path, :method => :get) if route[:controller] == 'projects' && route[:id] project = Project.find(route[:id]) end rescue ActionController::RoutingError # Parse failed, not a route end end def export_i18n_for_javascript strings = { 'kanban_text_error_saving_issue' => l(:kanban_text_error_saving_issue), 'kanban_text_issue_created_reload_to_see' => l(:kanban_text_issue_created_reload_to_see), 'kanban_text_issue_updated_reload_to_see' => l(:kanban_text_issue_updated_reload_to_see), 'kanban_text_notice_reload' => l(:kanban_text_notice_reload), 'kanban_text_watch_and_cancel_hint' => l(:kanban_text_watch_and_cancel_hint), 'kanban_text_issue_watched_reload_to_see' => l(:kanban_text_issue_watched_reload_to_see) } javascript_tag("var i18n = #{strings.to_json}") end def viewed_user return @user if @user.present? return User.current end def use_simple_issue_popup_form? # TODO: Hate how Settings is stored... @settings['simple_issue_popup_form'] && ( @settings['simple_issue_popup_form'] == '1' || @settings['simple_issue_popup_form'] == 1 || @settings['simple_issue_popup_form'] == true ) end # Load remote RJS/HTML data from url into dom_id def kanban_remote_data(url, dom_id) javascript_tag("Kanban.remoteData('#{url}', '#{dom_id}');") + content_tag(:span, l(:label_loading), :class => 'loading') end # Returns a list of pane names in the configured order. # # @param hash options Method options # @option options Array :only Filter the panes to only include these ones def ordered_panes(options={}) only = options[:only] || [] if only.present? KanbanPane.pane_order.select {|pane| only.include?(pane) } else KanbanPane.pane_order end end class UserKanbanDivHelper < BlockHelpers::Base include ERB::Util def self.parent superclass end def initialize(options={}) @column = options[:column] @user = options[:user] @project_id = options[:project_id] end def issues(issues) if issues.compact.empty? || issues.flatten.compact.empty? render :partial => 'kanbans/empty_issue' else render(:partial => 'kanbans/issue', :collection => issues.flatten, :locals => { :limit => Setting['plugin_redmine_kanban']["panes"][@column.to_s]["limit"].to_i }) end end def display(body) content_tag(:div, content_tag(:ol, body, :id => "#{@column}-issues-user-#{h(@user.id)}-project-#{h(@project_id)}", :class => "#{@column}-issues"), :id => "#{@column}-#{h(@user.id)}-project-#{h(@project_id)}", :class => "pane equal-column #{@column} user-#{h(@user.id)}", :style => "width: #{ helper.my_kanban_column_width(@column)}%") end end class KanbanContextualMenu < BlockHelpers::Base include ActionView::Helpers # 引入 Rails 视图方法 delegate :link_to, :content_tag, to: :@view_context def initialize(options={}) @view_context = options.delete(:view_context) || ActionController::Base.helpers super(options) @kanban = options[:kanban] @user = options[:user] end def color_help link_to_function(l(:kanban_text_color_help), "$('color-help').toggle();", :class => 'icon icon-info') end def kanban_board if User.current.allowed_to?(:view_kanban, nil, :global => true) link_to(l(:text_kanban_board), kanban_url, :class => 'icon icon-stats') end end def my_kanban_requests link_to(l(:text_my_kanban_requests_title), kanban_user_kanban_path(:id => User.current.id), :class => 'icon icon-user') end def assigned_requests link_to(l(:text_assigned_kanban_title), kanban_assigned_kanban_path(:id => User.current.id), :class => 'icon icon-user') end def new_issue if User.current.allowed_to?(:add_issues, nil, :global => true) if Setting.plugin_redmine_kanban['panes'].present? && Setting.plugin_redmine_kanban['panes']['incoming'].present? && Setting.plugin_redmine_kanban['panes']['incoming']['url'].present? incoming_url = Setting.plugin_redmine_kanban['panes']['incoming']['url'] incoming_project = extract_project_from_url(incoming_url) link_name = incoming_project.present? ? incoming_project.name : l(:label_issue_new) else link_name = l(:label_issue_new) end link_to_function(link_name, "void(0)", :class => 'new-issue-dialog icon icon-issue') end end def sync_kanban if User.current.allowed_to?(:edit_kanban, nil, :global => true) link_to(l(:kanban_text_sync), sync_kanban_url, :method => :put, :class => 'icon icon-reload') end end # @param [Hash] options # @option options [String] :url URL that the user switch form should post to # @option options [String] :label Text to use for the Switch User label (i18n'd already) # @option options [String] :users Users to allow switching to. Defaults to all active Users def user_switch(options={}) url = options[:url] label = options[:label] || l(:label_user_switch) users = options[:users] || User.active if kanban_settings["management_group"] && User.current.group_ids.include?(kanban_settings["management_group"].to_i) render :partial => 'kanbans/user_switch', :locals => {:url => url, :label => label, :users => users.sort} end end def display(body) content = call_hook(:view_user_kanbans_show_contextual_top, :user => @user, :kanban => @kanban).to_s content += body content += call_hook(:view_user_kanbans_show_contextual_bottom, :user => @user, :kanban => @kanban).to_s content_tag(:div, content, :class => "contextual") end end end 报错如下 ActionView::Template::Error (undefined method `kanban_contextual_menu' for #<ActionView::Base:0x0002346c0cc248>):
09-11
C01719/com.huawei.hmos.vassistant/ffrt: 19:RecordPollerInfo:323 3:2; 行 12: 10-15 07:44:34.820 884 44042 E C03D00/utils_base: Failed to remove root dir: /dev/memcg/100/com.huawei.hmos.vassistant: Resource busy 行 13: 10-15 07:44:34.821 884 44042 E C02699/memmgrservice/MemMgr: KernelInterface::RemoveDirRecursively remove(/dev/memcg/100/com.huawei.hmos.vassistant) failed. errno:Resource busy 行 14: 10-15 07:44:34.821 884 44042 E C02699/memmgrservice/MemMgr: Memcg::RemoveMemcgDir failed. /dev/memcg/100/com.huawei.hmos.vassistant 行 494: 10-15 07:44:35.290 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: AppServiceTask 行 495: 10-15 07:44:35.291 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: StorageStart 行 496: 10-15 07:44:35.291 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: ActionStart 行 497: 10-15 07:44:35.291 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: PhoneBaseStart 行 498: 10-15 07:44:35.292 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: PhoneServiceStart 行 499: 10-15 07:44:35.292 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: UiDelayStart 行 500: 10-15 07:44:35.293 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: add boot task: VoiceBusinessStart 行 501: 10-15 07:44:35.295 57584 57584 W A00011/com.huawei.hmos.vassistant/HwVA_VoiceRouter: Service AiDispatch is already registered 行 502: 10-15 07:44:35.295 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_UiBootFinish: getBootFinishAsync initializing, will resolve when completed 行 503: 10-15 07:44:35.295 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_UiBootFinish: getBootFinishAsync initializing, will resolve when completed 行 504: 10-15 07:44:35.295 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute AppServiceTask cost: 0 行 505: 10-15 07:44:35.296 57584 57803 W C01650/com.huawei.hmos.vassistant/Rdb: RdbStoreManager[IsConfigInvalidChanged]: Not found config cache, path: /***/el2/***/VassistantDb.db 行 507: 10-15 07:44:35.297 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute StorageStart cost: 2 行 508: 10-15 07:44:35.297 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_AiDispatchImpl: init start 行 509: 10-15 07:44:35.297 57584 57584 I A00F00/com.huawei.hmos.vassistant/BaseSdk_5.11.4-200: BaseSdkPresenter:constructor 行 510: 10-15 07:44:35.297 57584 57584 I A00F00/com.huawei.hmos.vassistant/BaseSdk_5.11.4-200: BaseSdkPresenter:enter bind service 行 511: 10-15 07:44:35.297 57584 57584 E A00F00/com.huawei.hmos.vassistant/BaseSdk_5.11.4-200: BaseSdkPresenter:connectContext is null or connectContext no connectServiceExtensionAbility method 行 512: 10-15 07:44:35.297 57584 57584 I A00F00/com.huawei.hmos.vassistant/BaseSdk_5.11.4-200: JsonUtil:parseObjToStr 行 513: 10-15 07:44:35.297 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_AiDispatchImpl: init retCode: -2 行 514: 10-15 07:44:35.298 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute ActionStart cost: 1 行 515: 10-15 07:44:35.298 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute PhoneBaseStart cost: 0 行 516: 10-15 07:44:35.298 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_HiscenarioStub: setProxy 行 517: 10-15 07:44:35.304 57584 57584 W C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:1225)(FindNativeModuleByCache)] moduleName 'collaboration.rcp' is in different path 行 518: 10-15 07:44:35.304 57584 57584 I C015B0/com.huawei.hmos.vassistant/NETSTACK: Rcp InitModule 行 519: 10-15 07:44:35.304 57584 57584 I C015B0/com.huawei.hmos.vassistant/NETSTACK: CreateUvHandlerQueue newId = 2, id = 3 行 520: 10-15 07:44:35.304 57584 57584 I C015B0/com.huawei.hmos.vassistant/NETSTACK: threadId: 384769451008 57584 行 521: 10-15 07:44:35.306 57584 57803 I C01650/com.huawei.hmos.vassistant/Rdb: ConnectionPool[Create]: code:0 app:com.huawei.hmos.vassistant path:[/***/el2/***/VassistantDb.db] cfg:[0,0,0,2,2,0,0]VassistantDb.db:<DB,0x6573,4096><SHM,0x657d,32768><WAL,0x657b,131872> 行 521: 10-15 07:44:35.306 57584 57803 I C01650/com.huawei.hmos.vassistant/Rdb: ConnectionPool[Create]: code:0 app:com.huawei.hmos.vassistant path:[/***/el2/***/VassistantDb.db] cfg:[0,0,0,2,2,0,0]VassistantDb.db:<DB,0x6573,4096><SHM,0x657d,32768><WAL,0x657b,131872> 行 523: 10-15 07:44:35.310 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:297)(Register)] At tail register module name is 'core.push.pushService', isAppModule is 0 行 524: 10-15 07:44:35.311 57584 57584 W C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:1225)(FindNativeModuleByCache)] moduleName 'core.push.pushService' is in different path 行 525: 10-15 07:44:35.312 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:297)(Register)] At tail register module name is 'core.push.pushCommon', isAppModule is 0 行 526: 10-15 07:44:35.315 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:297)(Register)] At tail register module name is 'app.form.formBindingData', isAppModule is 0 行 527: 10-15 07:44:35.315 57584 57584 I C01301/com.huawei.hmos.vassistant/FmskitNative: [js_form_binding_data.cpp(JsFormBindingDataInit:78)]call 行 528: 10-15 07:44:35.315 57584 57584 I C01301/com.huawei.hmos.vassistant/FmskitNative: [js_form_binding_data.cpp(JsFormBindingDataInit:86)]call 行 529: 10-15 07:44:35.316 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:297)(Register)] At tail register module name is 'app.form.formProvider', isAppModule is 0 行 530: 10-15 07:44:35.318 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:297)(Register)] At tail register module name is 'app.ability.AbilityLifecycleCallback', isAppModule is 0 行 531: 10-15 07:44:35.320 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:605)(LoadNativeModule)] key is default/grsservice 行 532: 10-15 07:44:35.320 57584 57584 I A00000/com.huawei.hmos.vassistant/AKI: [INFO:napi_init.cpp(99)] begin to initial AKI with version: 1.2.18 行 533: 10-15 07:44:35.334 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:605)(LoadNativeModule)] key is default/yundun 行 535: 10-15 07:44:35.338 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:605)(LoadNativeModule)] key is default/network-hwhttp 行 539: 10-15 07:44:35.338 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:605)(LoadNativeModule)] key is default/network-websocket-service 行 540: 10-15 07:44:35.339 57584 57584 I A00000/com.huawei.hmos.vassistant/AKI: [INFO:napi_init.cpp(99)] begin to initial AKI with version: 1.2.18 行 541: 10-15 07:44:35.339 57584 57584 I A00001/com.huawei.hmos.vassistant/NK_COMM_TS: NetworkStatus set callback to cpp start 行 542: 10-15 07:44:35.339 57584 57584 I A00000/com.huawei.hmos.vassistant/chromium: [1015/074435.339563:INFO:network_change_notifier_napi.cpp(199)] SetInitCallback in master JS thread, thread id:57584 行 543: 10-15 07:44:35.340 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:605)(LoadNativeModule)] key is default/network-restclient-service 行 544: 10-15 07:44:35.340 57584 57584 I A00000/com.huawei.hmos.vassistant/AKI: [INFO:napi_init.cpp(99)] begin to initial AKI with version: 1.2.18 行 545: 10-15 07:44:35.341 57584 57584 I A00001/com.huawei.hmos.vassistant/NK_URL_TS: Url Engine start, buildVersion:8.0.10-303 buildType:RelWithDebInfo isLite:false 行 546: 10-15 07:44:35.341 57584 57584 I A00001/com.huawei.hmos.vassistant/NK_COMM_TS: NetworkStatus set callback to cpp start 行 547: 10-15 07:44:35.341 57584 57584 I A00000/com.huawei.hmos.vassistant/chromium: [1015/074435.341224:INFO:network_change_notifier_napi.cpp(199)] SetInitCallback in master JS thread, thread id:57584 行 548: 10-15 07:44:35.342 57584 57584 I A0DFFF/com.huawei.hmos.vassistant/HISCENARIO_HiscenarioVa: setHiscenarioProxy 行 549: 10-15 07:44:35.342 57584 57584 I A0DFFF/com.huawei.hmos.vassistant/HISCENARIO_HiScenario: setContext() 行 550: 10-15 07:44:35.342 57584 57584 I A0DFFF/com.huawei.hmos.vassistant/HISCENARIO_HiScenario: setHiScenarioInterface() 行 551: 10-15 07:44:35.342 57584 57584 I A0DFFF/com.huawei.hmos.vassistant/HISCENARIO_AbilityLifeCycleMana: set AbilityLifecycleCallback 行 552: 10-15 07:44:35.342 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_HiscenarioStub: registerIntent 行 553: 10-15 07:44:35.342 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute PhoneServiceStart cost: 44 行 554: 10-15 07:44:35.342 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute UiDelayStart cost: 0 行 555: 10-15 07:44:35.342 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_OnAppBusinessManager: init. 行 556: 10-15 07:44:35.342 57584 57584 I A00011/com.huawei.hmos.vassistant/HwVA_VaBoot: execute VoiceBusinessStart cost: 0 行 557: 10-15 07:44:35.344 57584 57584 I A06666/com.huawei.hmos.vassistant/PafLog_TS: setConfig start nodeType:hi_logger appTag: level:3 行 565: 10-15 07:44:35.348 57584 57584 E C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:932)(GetFileBuffer)] /system/etc/abc/multimodalawareness/metadatabinding.abc is not existed. 行 567: 10-15 07:44:35.348 57584 57584 E C03F01/com.huawei.hmos.vassistant/NAPI: [(native_module_manager.cpp:1040)(FindNativeModuleByDisk)] First attempt: load app module failed. do_dlsym failed: Symbol not found: napi_onLoad, version: null so=/system/lib64/module/app/ability/libabilitylifecyclecallback.z.so 行 568: 10-15 07:44:35.348 57584 57584 E C03F01/com.huawei.hmos.vassistant/NAPI: Second attempt: load app module failed. Error loading path /system/lib64/module/multimodalawareness/libmetadatabinding_napi.z.so:No such file or directory 行 569: 10-15 07:44:35.348 57584 57584 E C03F01/com.huawei.hmos.vassistant/NAPI: try to load abc file from /system/etc/abc/multimodalawareness/metadatabinding.abc failed 行 570: 10-15 07:44:35.348 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: [(ark_native_engine.cpp:490)(operator())] First attempt: load app module failed. do_dlsym failed: Symbol not found: napi_onLoad, version: null so=/system/lib64/module/app/ability/libabilitylifecyclecallback.z.so 行 571: 10-15 07:44:35.348 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: Second attempt: load app module failed. Error loading path /system/lib64/module/multimodalawareness/libmetadatabinding_napi.z.so:No such file or directory 行 572: 10-15 07:44:35.348 57584 57584 I C03F01/com.huawei.hmos.vassistant/NAPI: try to load abc file from /system/etc/abc/multimodalawareness/metadatabinding.abc failed 行 573: 10-15 07:44:35.348 57584 57584 E C03F00/com.huawei.hmos.vassistant/ArkCompiler: [default] [LoadNativeModule:468] export objects of native so is undefined, so name is entry 行 575: 10-15 07:44:35.348 57584 57584 I C03F00/com.huawei.hmos.vassistant/ArkCompiler: [default] [EvaluateNativeModule:495] LoadNativeModule @ohos:multimodalAwareness.metadataBinding failed 行 576: 10-15 07:44:35.349 57584 57584 I A06666/com.huawei.hmos.vassistant/PafLog_TS: setConfig start nodeType:hi_logger appTag: level:3 行 577: 10-15 07:44:35.351 57584 57584 I A00001/com.huawei.hmos.vassistant/HwVA_KitModelMain: onInit start 在以上日志里面,使用者在早上7点多这会呼唤小艺了么?为啥小艺语音助手和audio_host耗电量特别高
最新发布
10-16
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值