我的android清单文件中有错误:
Error:Cannot read packageName from C:\Users\brandon\AndroidStudioProjects\MineDodge2\app\src\main\AndroidManifest.xml
Error:The markup in the document preceding the root element must be well-formed.
我试着在这个网站上看,但答案对我不起作用。
<?xml version="1.0" encoding="utf-8"?>
< manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.brandon.MineDodge" >
<application
android:allowBackup="true"
android:icon="@mipmap/redjet"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.brandon.MineDodge.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.brandon.MineDodge.Splash" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</application>
</manifest>
答案 0 :(得分:19)
如果您使用旧版本的 build.grade 文件,则应删除此代码:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
然后, Build&gt;清洁项目
注意:如果您看到此代码,则表示您使用的是旧版本
答案 1 :(得分:3)
错误非常简单,我对堆栈社区感到非常失望,直到现在还没有找到它。
fold_l_impl
应该成为
< manifest ...
基本上,删除多余的空间。这就是造成以下错误的原因:
<manifest...
此外,用于MainActivity的intent-filter必须类似地用于第二个活动。
希望这个问题得到解决。
答案 2 :(得分:3)
我在Unity 2018上遇到此错误,我认为这是一个错误。
为我修复: 将程序包名称添加到Unity项目中的Android Manifest。
在我要显示的项目路径中:Assets/Plugins/Android/AndroidManifest.xml
例如,清单文件如下所示时出现错误:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
...
</manifest>
它由Unity的Oculus Gear VR插件生成。但是它错过了程序包名称,必须看起来像这样:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest package="YOURPACKAGENAME" xmlns:android="http://schemas.android.com/apk/res/android">
...
</manifest>
将YOURPACKAGENAME替换为项目的程序包名称。它应该在“编辑”->“项目设置”->“播放器”->“其他设置”->“标识”->“程序包名称”中,并且应类似于com.YOURORGANIZATION.APPNAME
有些人写道,清单必须看起来像这样:
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<manifest package="${applicationId}" xmlns:android="http://schemas.android.com/apk/res/android">
...
</manifest>
他们写道,在构建android应用程序时,Unity将在程序包名称上替换${applicationId}
,但是在我的Unity 2018.1.6f1中,它不起作用,我也认为这是一个错误。
答案 3 :(得分:0)
你的第二个<action android:name="android.intent.action.MAIN" />
和
此处不允许<category android:name="android.intent.category.LAUNCHER" />
。
我认为
`
&LT; manifest xmlns:android =&#34; http://schemas.android.com/apk/res/android"
包=&#34; com.example.brandon.MineDodge&#34; &GT;
<application
android:allowBackup="true"
android:icon="@mipmap/redjet"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.example.brandon.MineDodge.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name="com.example.brandon.MineDodge.Splash" />
</application>
` 那没关系。
答案 4 :(得分:0)
为什么你两次提到<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
?从这两个中删除任何一个。
答案 5 :(得分:0)
我在多子项目项目中有这个问题,原因是子项目与顶级configure(
中的build.gradle
子句不匹配。
特别是我有
configure(subprojects.findAll { it.name.startsWith("pachymeninx") }) {
与我的新子项目pachymen
不匹配。但Gradle构建过程没有发出警告(我看到),而是为Cannot read packageName from AndroidManifest.xml
子项目发出了“pachymen
”错误。
答案 6 :(得分:0)
这很简单,因为您要么已经将现有项目及其文件复制到新创建的项目中。从而导致Manifest冲突。因为复制的清单属于另一个项目及其路径。
您需要在自己的项目文件路径中重新创建清单文件,并可能手动将其他项目的清单代码复制到新创建的清单文件中。
答案 7 :(得分:0)
响应Eldar Kurbanov的人在Unity中遇到此错误,以及在Unity中使用gradle构建时出现错误后找到此问题的其他人。
这不是Unity 2018的“错误”,也不是Manifest预构建中缺少的东西引起的。实际上是由于mainTemplate.gradle文件缺少以下行引起的:
applicationId '**APPLICATION**'
在 android {} 部分的 defaultConfig {} 块中。这样可以确保在生成的清单中插入了包名。
是的,可以手动将包名称插入主清单中,但是最好使用Unity的项目设置来设置包名称,而不是对其进行硬编码。
如果其他人找到了这个问题并且他们正在使用Unity,则可以使用以下示例mainTemplate.gradle进行引用:https://pastebin.com/hPs0uvkZ
答案 8 :(得分:0)
我的问题是我试图将旧的Eclipse项目转换为清单文件应位于其他位置的Android Studio项目(以及其他文件)。具体是 project \ app \ src \ main
答案 9 :(得分:0)
检查您的src文件是否以不同的名称命名.....如果是这种情况,那么您可能会遇到此错误....将其重命名为“ src
答案 10 :(得分:0)
检查清单文件应位于-> \ android \ app \ src \ main \ AndroidManifest.xml
否则android在特定位置的清单文件中找不到包名称
答案 11 :(得分:-1)
试试这个,
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.brandon.MineDodge">
<application
android:icon="@drawable/launchicon"
android:label="@string/app_name"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:screenOrientation="portrait"
android:theme="@style/AppBaseThemeTP">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Splash"
android:screenOrientation="portrait"
android:theme="@style/AppBaseThemeTP" >
</activity>
</application>
</manifest>
答案 12 :(得分:-1)
android:name="com.example.brandon.MineDodge.MainActivity"
应该在<application>
下,而不是<activity>
下。
答案 13 :(得分:-2)
for(numclicks: clickStream.length){
// first subscription
if (numclicks === 1){
document.querySelector('h2').textContent = 'click';
}
// second subscription
if(numclicks > 1){
document.querySelector('h2').textContent = ''+numclicks+'x click';
}
// merged subscription
if (numclicks === 0) {
document.querySelector('h2').textContent = '';
}
}
将其更改为 -
<activity
android:name="com.example.brandon.MineDodge.Splash" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</application>