![](/img/trans.png)
[英]Error:Cannot read packageName from C:\Users\JR's Computer\Desktop\COMT\Actual Cellar App\src\main\AndroidManifest.xml
[英]Cannot read packageName from AndroidManifest.xml
我的 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>
如果您使用的是旧版本的build.grade文件,您应该删除以下代码:
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
然后,构建>清理项目
注意:如果您看到此代码,则您使用的是旧版本
这个错误真的很简单,我对堆栈社区直到现在还没有发现它感到非常失望。
< manifest ...
应该成为
<manifest...
基本上,删除多余的空间。 这就是导致以下错误的原因:
Error:The markup in the document preceding the root element must be well-formed.
此外,用于 MainActivity 的意图过滤器也必须类似地用于第二个活动。
希望这个问题得到解决。
我在 Unity 2018 上遇到了这个错误,我认为这是一个错误。
为我修复:在 Unity 项目中将 packagename 添加到 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 替换为项目的包名称。 它应该在 Edit -> Project Settings -> Player -> Other Settings -> Identification -> Package Name 中,看起来像 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 中它不起作用,我认为这也是一个错误。
我的问题是我试图将一个旧的 Eclipse 项目转换为 Android Studio 项目,其中清单文件预计位于不同的位置(以及其他文件)。 特别是project\\app\\src\\main
回应在 Unity 中出现此错误的Eldar Kurbanov以及在 Unity 中使用 gradle 构建时出现错误后发现此问题的任何其他人。
这不是 Unity 2018 的“错误”,也不是由清单预构建中缺少某些内容引起的。 它实际上是由 mainTemplate.gradle 文件缺少该行引起的:
applicationId '**APPLICATION**'
在android {}部分的defaultConfig {}块内。 这将确保生成的清单中插入了包名称。
是的,手动将包名插入到主清单中是可行的,但最好使用 Unity 的项目设置来设置包名,而不是对其进行硬编码。
如果其他人发现这个问题并且他们正在使用 Unity,那么这里有一个 mainTemplate.gradle 示例,您可以用于参考: https : //pastebin.com/hPs0uvkZ
您的第二个<action android:name="android.intent.action.MAIN" />
和<category android:name="android.intent.category.LAUNCHER" />
在这里是不允许的。 我认为` <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" />
</application>
` 没问题。
为什么你提到<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
两次? 从这两个中删除任何一个。
我在一个多子项目项目中遇到了这个,这是由于子项目与顶级build.gradle
的configure(
子句不匹配造成的。
具体我有
configure(subprojects.findAll { it.name.startsWith("pachymeninx") }) {
这与我名为pachymen
新子项目不匹配。 但是 Gradle 构建过程没有发出警告(我看到了),而是为pachymen
子项目给出了“ Cannot read packageName from AndroidManifest.xml
”错误。
那只是因为您将现有项目及其文件复制到新创建的项目中。 从而导致Manifest 冲突。 因为复制的清单属于另一个项目及其路径。
您需要在您自己的项目文件路径中重新创建一个清单文件,并可能手动将其他项目的清单代码复制到您新创建的清单文件中。
检查您的 src 文件是否以不同的名称命名.....如果是这种情况,那么您最终可能会遇到此错误....将其重命名为“src
检查您的清单文件应该在-> \\android\\app\\src\\main\\AndroidManifest.xml
否则android无法从特定位置在Manifest文件中找到包名
就我而言,模块级别的 android 清单文件位于错误的位置。 它在src/java/
而它应该在src/
尝试这个 ,
<?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>
android:name="com.example.brandon.MineDodge.MainActivity"
应该在<application>
,而不是<activity>
。
<activity
android:name="com.example.brandon.MineDodge.Splash" />
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</application>
改成——
<activity
android:name="com.example.brandon.MineDodge.Splash" />
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</application>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.