编译错误:找不到AudioProfileManager错误

本文介绍了在Android项目中遇到无法编译的问题,原因是引用了MTK自定义的类,但在Android.mk文件中未正确引用相关库。通过在Android.mk文件中添加正确的库引用解决了此问题。

问题背景:

  今天在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中找到。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值