Android5.1.1编译出错 make[1]: *** [out/target/common/obj/PACKAGING/checksystemapi-last-timestamp]错误:38

在源码frameworks/base/core/java/android/net/ConnectivityManager.java 文件中将

public static final int DEFAULT_NETWORK_PREFERENCE = TYPE_WIFI; 

的值换成 TYPE_ETHERNET

然后重新编译就编译不过,报[out/target/common/obj/PACKAGING/checksystemapi-last-timestamp] 错误 38



解决方法:搜索了网上很多方法,发现都解决不了。

  1.     make update-api

make -j8
失败
2. make clean
make update-api
make -j8
失败
3. 原因是由于修改了framework层中的代码,导致跟默认api不对,才编译不过,但是make update-api 也修改不过来有些值,需要手动去修改对应api level中的值,在framework下有不同版本源码对应的api文件,不同版本的源码可能路径不太一样,我的是Android 5.1.1 对应的api level 为22,因此可以在源码下搜索 22.txt。
android/prebuilts/sdk/system-api/22.txt. 修改22.txt文件中DEFAULT_NETWORK_PREFERENCE的值跟你代码中的值一直,然后再去编译即可。

较早的源码版本对应的api level在 /android/prebuilts/sdk/api 目录下,有

10.xml 11.xml 12.xml 13.xml 14.txt 15.txt 16.txt 17.txt 18.txt 19.txt 1.xml 20.txt 21.txt 22.txt 2.xml 3.xml 4.xml 5.xml 6.xml 7.xml 8.xml 9.xml 这些文件。至于哪个文件对应哪个版本的android源码,可以去搜索api level。





猜你喜欢

转载自blog.csdn.net/u012830148/article/details/76269446