Android 开发常用问题汇总-2

常见make编译错误。

环境:Android 8.0 API 26

1.build/core/package_internal.mk:51: error: external/zlib: Package modules may not define LOCAL_MODULE. 20:30:34 ckati failed with: exit status 1 make: *** [run_soong_ui] Error 1

解释:包模块可能没有定义LOCAL_MODULE

解决: 检查mk编译文档之中关键字是否有写错。 主要是includ 后面的内容是否有写错。

在这里插入图片描述
是否有写错关键字错误,就会造成解析mk文件错误。然后出现上面的错误警告。

2.ninja: error: unknown target 'MODULES-IN-device-hisilicon-bigfish-packages-apps-XXXX'20:31:42 ninja failed with: exit status 1make: *** [run_soong_ui] Error 1

如果只是通过mm命令编译该apk ,而不是系统编译时

解释:加载apk 模块失败。

这种错误有很多原因会造成。但是最可能出现的问题在于mk文件之中的 LOCAL_PATH 第一行第一列的代码之中有输入错误。
正确输入效果: LOCAL_PATH := $(call my-dir)

3.error: Error: No resource found that matches the given name: attr 'colorPrimary'.

错误效果图

Android 开发常用问题汇总-2_第1张图片
主要原因在于编译的库文件造成的。
这是因为你的项目之中是有了Android V7 库文件,而在mk文件的配置之中没有导入相关的库,所以在编译检查的时候,出现了找不到resource的错误。

android.mk 文件之中添加android-support-v7appcompat
使用 导入库之后 还需要注意导入v7的 res文件,否则任然提示错误。

4.unknown element <**user-sdk**> found.

warn: ignoring density 'hdpi-v4' for -c option. warn: ignoring density 'xhdpi-v4' for -c option. xxxx/packages/apps/XXXAPK/AndroidManifest.xml:4: error: unknown element found. ninja: build stopped: subcommand failed. 19:24:34 ninja failed with: exit status 1

在这里插入图片描述
这种情况其实都是在告诉你,你的AndroidManifest之中的标签有写错了。

例如我这个例子就是在AndroidManifest.xml文档第4行内容之中,将
<uses-sdk> 给写成了 <user-sdk> 造成的错误。

如果提示element 错误,都是因为你写的标签语法不正确的问题。注意检查。

5.ERROR: /home/code/device/Demo/packages/apps/HUDemo/java/com/xxxx/txx/util/MainActivity.java:9.8: The import androidx cannot be resolved

错误原因,主要在于你的源码之中import 导入了androidx 库的资源。
解决方案有两种:
1.将你的代码之中全部的import的androidx 替换为android-v7库,因为通常情况下,我们在利用sdk进行编译的时候android SDK提供了androidX库,但是在系统源码之中,很可能没有androidX库。(android 8.0源码之中没有找到androidx库。而存在android-v7库

2.参考第三的问题的解决。导入AndroidX库。

3.将AndroidX的jar文件,导入到源码之中,然后使用第三方库导入方式进行配置。

推荐使用第一种解决,方便也快捷。

因为我们如果是使用源码进行编译apk,你就不要再考虑适配多少的问题了。这边版本就是跟着当前的系统专门做适配的。

你可能感兴趣的:(error)