Android aapt 在包含任何类型的资源时崩溃
Android aapt crash when including any kind of resources
我在使用 aapt
将资源打包到 apk 时遇到了一些问题。当我的 AndroidManifest.xml
中没有 @drawable/[...]
或 @styles/[...]
方向时,一切正常。但是一旦我添加例如 android:icon="@drawable/icon"
aapt 崩溃*在解析我的图标文件后(所以压缩图像和东西似乎工作)。
我使用的命令是:
aapt package -v -f -M AndroidManifest.xml -S res -I android.jar -F test.apk
使用 -S res
并在清单中添加 @-directions 时失败。否则成功。
输出日志:
[...]
applyFileOverlay for menu
applyFileOverlay for mipmap
Processing image: res/drawable/icon.png
Processing image: res/drawable-ldpi/icon.png
Processing image: res/drawable-xhdpi/icon.png
(processed image res/drawable-ldpi/icon.png: 82% size of source)
(processed image res/drawable-xhdpi/icon.png: 95% size of source)
(processed image res/drawable/icon.png: 60% size of source)
(new resource id icon from drawable/icon.png #generated)
(new resource id icon from ldpi-v4/drawable/icon.png #generated)
(new resource id icon from xhdpi-v4/drawable/icon.png #generated)
Aborted (dump written)
退出代码是 134,找不到任何相关信息
谢谢
编辑
所有资源都用于 Android Studio 项目。因为那个编译没有任何问题,我认为资源是有效的
(似乎是 aapt 或 xml 解析的问题,我认为 gradle 取代了 Android Studio 中 aapt 的任务)
此外,由于它也可能是系统特定问题,因此这是我的规格:
- Ubuntu 16.04.4 64 位
- AMD 处理器(6 核)
- 区域设置:德语
- 用于测试的终端:
gnome-terminal
编辑 - AndroidManifest.xml
的内容
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.app"> <!-- Of cause different but no special chars -->
<application
android:allowBackup="true"
android:icon="@drawable/icon" <!-- With this line, crashes -->
android:label="Title" <!-- Again different title but only english letters -->
android:supportsRtl="true"
android:testOnly="false">
<activity android:name="immerse.MAct">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
更新
在没有 @drawable/icon
但有资源的情况下再次尝试。还在崩溃。
所以这似乎不是 xml 问题
我在使用 aapt
将资源打包到 apk 时遇到了一些问题。当我的 AndroidManifest.xml
中没有 @drawable/[...]
或 @styles/[...]
方向时,一切正常。但是一旦我添加例如 android:icon="@drawable/icon"
aapt 崩溃*在解析我的图标文件后(所以压缩图像和东西似乎工作)。
我使用的命令是:
aapt package -v -f -M AndroidManifest.xml -S res -I android.jar -F test.apk
使用 -S res
并在清单中添加 @-directions 时失败。否则成功。
输出日志:
[...]
applyFileOverlay for menu
applyFileOverlay for mipmap
Processing image: res/drawable/icon.png
Processing image: res/drawable-ldpi/icon.png
Processing image: res/drawable-xhdpi/icon.png
(processed image res/drawable-ldpi/icon.png: 82% size of source)
(processed image res/drawable-xhdpi/icon.png: 95% size of source)
(processed image res/drawable/icon.png: 60% size of source)
(new resource id icon from drawable/icon.png #generated)
(new resource id icon from ldpi-v4/drawable/icon.png #generated)
(new resource id icon from xhdpi-v4/drawable/icon.png #generated)
Aborted (dump written)
退出代码是 134,找不到任何相关信息
谢谢
编辑
所有资源都用于 Android Studio 项目。因为那个编译没有任何问题,我认为资源是有效的
(似乎是 aapt 或 xml 解析的问题,我认为 gradle 取代了 Android Studio 中 aapt 的任务)
此外,由于它也可能是系统特定问题,因此这是我的规格:
- Ubuntu 16.04.4 64 位
- AMD 处理器(6 核)
- 区域设置:德语
- 用于测试的终端:
gnome-terminal
编辑 - AndroidManifest.xml
的内容<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.company.app"> <!-- Of cause different but no special chars -->
<application
android:allowBackup="true"
android:icon="@drawable/icon" <!-- With this line, crashes -->
android:label="Title" <!-- Again different title but only english letters -->
android:supportsRtl="true"
android:testOnly="false">
<activity android:name="immerse.MAct">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
更新
在没有 @drawable/icon
但有资源的情况下再次尝试。还在崩溃。
所以这似乎不是 xml 问题