【发布时间】:2016-08-11 23:58:44
【问题描述】:
当我将 MuPDF 库添加到我的项目时可能会导致此问题。
这是错误日志:
FATAL EXCEPTION: main
Process: ch.my.app, PID: 18899
java.lang.RuntimeException: Unable to start activity ComponentInfo{ch.my.app/com.artifex.mupdflib.MuPDFActivity}: android.content.res.Resources$NotFoundException: File from drawable resource ID #0x7f0d000f: .xml extension required
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3119)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: android.content.res.Resources$NotFoundException: File from drawable resource ID #0x7f0d000f: .xml extension required
at android.content.res.Resources.twLoadColorStateList(Resources.java:4013)
at android.content.res.Resources.loadColorStateList(Resources.java:3943)
at android.content.res.Resources.getColor(Resources.java:2072)
at com.artifex.mupdflib.MuPDFActivity.onCreate(MuPDFActivity.java:295)
at android.app.Activity.performCreate(Activity.java:6500)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1120)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3072)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3218)
at android.app.ActivityThread.access$1000(ActivityThread.java:198)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1676)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6837)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
我将 MuPDF 库添加为模块,这是 settings.gradle
include ':app'
include ':library_MuPDF'
模块 app 的 build.gradle 包含:
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
defaultConfig {
minSdkVersion 8
targetSdkVersion 23
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:support-v4:22.2.1'
}
还有项目gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0'
}
}
allprojects {
repositories {
jcenter()
}
}
Android Studio 没有显示任何问题。 这是崩溃的代码:
getWindow().setStatusBarColor(getResources().getColor(R.color.actionbar_background_dark));
当我禁用它时,问题出在充气时:
mButtonsView = getLayoutInflater().inflate(R.layout.buttons, null);
这是膨胀错误:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: ch.app.app, PID: 3283
java.lang.RuntimeException: Unable to start activity ComponentInfo{ch.app.app/com.artifex.mupdflib.MuPDFActivity}: android.view.InflateException: Binary XML file line #14: Binary XML file line #14: Error inflating class <unknown>
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2484)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)
at android.app.ActivityThread.access$900(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5845)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
Caused by: android.view.InflateException: Binary XML file line #14: Binary XML file line #14: Error inflating class <unknown>
at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
at com.artifex.mupdflib.MuPDFActivity.makeButtonsView(MuPDFActivity.java:1091)
at com.artifex.mupdflib.MuPDFActivity.createUI(MuPDFActivity.java:587)
at com.artifex.mupdflib.MuPDFActivity.onCreate(MuPDFActivity.java:473)
at android.app.Activity.performCreate(Activity.java:6248)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1125)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2437)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2544)
at android.app.ActivityThread.access$900(ActivityThread.java:150)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1394)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:168)
at android.app.ActivityThread.main(ActivityThread.java:5845)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:797)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:687)
我检查的一切看起来都正确,我清理了项目,干净安装了应用程序,删除了使用这个库的所有其他应用程序,这个问题仍然存在。
我可以在哪里寻找其他可能的问题?
谢谢
【问题讨论】:
-
你认为
.xml extension required这行有什么意义吗? -
当我回复下面的答案时,库本身在示例项目 (github.com/joniks/Android-MuPDF) 中运行良好。所以 xml 扩展名就在它应有的位置上。即使是 Android Studio 在查找方面也没有任何问题(cmd-click 正在将我转移到具有正确颜色列表的正确 XML 文件)。问题不在于代码的正确性,抱歉,我应该提到这一点。或者,如果您的意思不同,请告诉我。
-
堆栈跟踪中有一行写着
Caused by: android.content.res.Resources$NotFoundException: File from drawable resource ID #0x7f0d000f: .xml extension required -
是的,我明白了。那是一些问题的结果。但我不知道是什么原因造成的,因为可绘制对象还可以,以及第二个示例,其中充气机在布局完全正常的情况下存在布局问题(因为它与正在工作的示例相同,模块是从工作库导入)。我真的不知道你想建议什么。
-
你有
res/values/colors或res/values/colors.xml吗?该错误似乎表明您的文件之一没有 XML 扩展名
标签: android android-studio mupdf