编译时,Android Manifest 会导致问题阻止其运行?
Posted
技术标签:
【中文标题】编译时,Android Manifest 会导致问题阻止其运行?【英文标题】:When compiling, Android Manifest causes problems preventing it from running? 【发布时间】:2020-08-10 10:29:49 【问题描述】:我对 android Studio 比较陌生,所以我一直在尝试制作这款笔记应用。
今天早上运行良好,直到我不得不制作菜单来添加注释。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/add_note" android:title="Add Note" ></item>
这是为了创建一个菜单,我可以在其中添加注释和内容,但是在分别在我的 MainActivity 和我的 NoteEditing 活动中引用它并编译之后,它开始起作用了。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.myjournal">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".NoteEditorActivity"></activity>
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
具体来说,我没有 android:theme="@style/AppTheme"> 或 android:label="@/app_name" 我不知道程序是从哪里得到的。如果我更改这两个并运行它,它会崩溃。我将android主题更改为“添加注释”的标题,它崩溃了
虽然我从未在 xml 文档中编写过这两个代码中的任何一个,并且在我的文件中也没有找到“styles.xml”。我真的很难过——在解决这个问题时,任何帮助都将不胜感激! 编辑:哎呀!我收到的错误是
Android 资源链接失败 C:\Users\mrwad\AndroidStudioProjects\MyJournal\app\src\main\AndroidManifest.xml:5:5-20:19: AAPT: error: resource style/AppTheme (aka com.example.myjournal:style/AppTheme) not找到了。
【问题讨论】:
你能发布你收到的错误吗?仅从您的描述很难判断出了什么问题。 (另外,你确定它不应该是@string/app_name
吗?)
哎呀!是的,我得到的错误当然是 Android 资源链接失败 C:\Users\mrwad\AndroidStudioProjects\MyJournal\app\src\main\AndroidManifest.xml:5:5-20:19: AAPT: error: resource style/找不到 AppTheme(又名 com.example.myjournal:style/AppTheme)。是的,我会试试@string/app_name,谢谢!
【参考方案1】:
啊,好吧,我想我明白发生了什么。
所以你说你没有 strings.xml,我假设你的 styles.xml 也没有正确设置。
所以在一个Android项目中,你应该在res
下有一个名为values
的目录:
在这个values
目录中包含项目使用的重要资源。这包括字符串、样式、颜色等。
因此,如果您缺少应用主题,请确保您的样式中存在主题(错误指向style/AppTheme
。这是一个示例styles.xml
:
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
</resources>
这些颜色可以存储在colors.xml
:
<resources>
<color name="colorPrimary">#FF0000</color>
<color name="colorAccent">#00FF00</color>
<color name="white">#FFFFFF</color>
</resources>
最后,您的app_name
应该驻留在strings.xml
文件中:
<resources>
<string name="app_name">My New App</string>
</resources>
如果缺少这些文件中的任何一个,则只需在app/src/main/res/
内的values
目录下创建上述文件。您会注意到,当您开发时,android 不喜欢硬编码值,并且每当您想编写字符串或颜色等时,它都会提示您在上述文件之一中创建一个资源条目以代替使用。
我强烈建议您阅读一些 android 文档,它们有一组非常详细的文档。你可以了解更多关于资源管理here
【讨论】:
【参考方案2】:android:label="@string/app_name" 您缺少字符串。 你可以在 res/values 目录中看到这些值。
【讨论】:
当我检查值目录时,它们似乎因为某种原因不存在?我不确定——我可以意外删除它们吗?是否可以创建一个新的值文件夹? prnt.sc/s6f0kx 是的,您可以制作 styles.xml以上是关于编译时,Android Manifest 会导致问题阻止其运行?的主要内容,如果未能解决你的问题,请参考以下文章
图标的问题,以及更改electron.manifest.json会导致崩溃。
Android:manifest targetSdkVersion 更改导致:图标不可见,小部件不再工作,并且无法访问数据
我必须在 Android Manifest 中指定父活动名称吗?