Android导入源码packages 中的apps出错
下载完源码后再linux 中编译框架中的app模块是不会出错的,但是加载到eclipse就会有很多错误。
Google 给用户提供的SDK 都是阉割版本的 无法使用隐藏的API,如果想要使用系统API 比如import android.os.AsyncResult;
首先需要下载源码,然后编译.编译完成后
在out/target/common/obj/JAVA_LIBRARIES/framework_intermediates 中把classer.jar 复制到eclipse的libs文件夹中大部分的系统API就可以使用了。
但有一些API 比如com.android.internal.telephony.Phone 可能在其他地方
或者通过shell 命令搜索Phone.class 查找这个api调用的地方 然后找到对应的jar包我的是在
JAVA_LIBRARIES 的telephony-common-intermediates目录下
下载完源码后再linux 中编译框架中的app模块是不会出错的,但是加载到eclipse就会有很多错误。
Google 给用户提供的SDK 都是阉割版本的 无法使用隐藏的API,如果想要使用系统API 比如import android.os.AsyncResult;
首先需要下载源码,然后编译.编译完成后
在out/target/common/obj/JAVA_LIBRARIES/framework_intermediates 中把classer.jar 复制到eclipse的libs文件夹中大部分的系统API就可以使用了。
但有一些API 比如com.android.internal.telephony.Phone 可能在其他地方
通过app目录下的.mk文件查找到 有依赖telephony-common
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, src)
LOCAL_PACKAGE_NAME := DeviceInfo
<span style="color:#ff6666;">LOCAL_JAVA_LIBRARIES += telephony-common</span>
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
或者通过shell 命令搜索Phone.class 查找这个api调用的地方 然后找到对应的jar包我的是在
JAVA_LIBRARIES 的telephony-common-intermediates目录下
找到所有的需要的classes.jar 后放到项目中的libs 中就可以。