編譯錯誤:找不到AudioProfileManager錯誤

問題背景:

  今天在frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java引用到了mtk自定義的類alps\mediatek\frameworks\base\media\audio\java\com\mediatek\audioprofile\AudioProfileManager.java ,編譯的時候提示如下錯誤:

frameworks/base/policy/src/com/android/internal/policy/impl/GlobalActions.java:965: cannot find symbol
symbol  : class AudioProfileManager
location: class com.android.internal.policy.impl.GlobalActions.SilentModeTriStateAction
        private AudioProfileManager mProfileManager;

在項目中搜索該類,在

/frameworks/base/packages/SettingsProvider/src/com/android/providers/settings/DatabaseHelper.java

frameworks/base/packages/SystemUI/src/com/mediatek/systemui/statusbar/toolbar/QuickSettingsConnectionModel.java

中都發現了該類的引用,似乎並無問題。


解決方法:

看一下GlobalActions.java的路徑,發現它隸屬於policy下面,在policy下面發現一個Android.mk文件。這個就比較有意思了,可以發現這個文件中並未引用AudioProfileManager類的庫,所以在Android.mk中添加如下內容即可:

LOCAL_PATH:= $(call my-dir)

# the library
# ============================================================
include $(CLEAR_VARS)

LOCAL_SRC_FILES := $(call all-java-files-under, src)

<span style="color:#ff0000;">#add by yourself在這個地方添加引用函數所在的庫
LOCAL_JAVA_LIBRARIES := mediatek-framework</span>
            
LOCAL_MODULE := android.policy

include $(BUILD_JAVA_LIBRARY)

# additionally, build unit tests in a separate .apk
include $(call all-makefiles-under,$(LOCAL_PATH))

這個庫名稱可以在AudioProfileManager所在模塊的Android.mk的LOCAL_MODULE中找到。



發佈了80 篇原創文章 · 獲贊 119 · 訪問量 51萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章