包含任何类型的资源时,Android都会崩溃

时间:2018-04-20 20:36:43

标签: android crash coredump aapt

我在使用aapt将资源打包到apk中时遇到了麻烦。在@drawable/[...]中没有@styles/[...]AndroidManifest.xml方向时,一切正常。但是,一旦我添加例如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 64bit
  • 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问题

2 个答案:

答案 0 :(得分:2)

尝试调整图像大小(降低图像大小),看起来它们的分辨率非常高,并且会占用更多内存。

答案 1 :(得分:0)

解决!对我来说,问题现在已经解决了。我的解决方案是从debian sid安装更新版本的aapt及其所有依赖项。

现在命令运行没有错误!

我从herehere下载了所有必需的文件,从包j开始,当然,dpkg会告诉您依赖项(有些可以通过int j = i; taskArray.Add(Task.Factory.StartNew((Object obj) => { cb.Add(j); Console.WriteLine("Task #{0} created on {1}", j, Thread.CurrentThread.ManagedThreadId); Thread.Sleep(10); }, , i)); 安装)

感谢这些网站!