Android Studio 3.0中的AndroidManifest.xml问题
我最近在金丝雀频道安装了Android Studio 3.0。但是,在加载我的旧项目时,这会不断出现在AndroidManifest.xml文件中,该文件根据构建变量自动生成:Android Studio 3.0中的AndroidManifest.xml问题,android,gradle,manifest,Android,Gradle,Manifest,我最近在金丝雀频道安装了Android Studio 3.0。但是,在加载我的旧项目时,这会不断出现在AndroidManifest.xml文件中,该文件根据构建变量自动生成: 错误:(49)找到未知元素 这也会显示: 错误:/home/computername/AndroidStudioProjects/applicationname/app/build/intermediates/manifests/full/release/AndroidManifest.xml:49找到未知元素 不用说,
错误:(49)找到未知元素
这也会显示:
错误:/home/computername/AndroidStudioProjects/applicationname/app/build/intermediates/manifests/full/release/AndroidManifest.xml:49找到未知元素
不用说,这在Android Studio 2.3中不是一个问题。有没有办法解决这个问题?我在这里读过一些类似的问题,但没有一个解决了我的问题。顺便说一下,不管我是将构建变量设置为debug还是release,它都会说同样的话。另外,“R”类也不起作用,如果我将鼠标悬停在清单xmlns:android=”http://schemas.android.com/apk/res/android
声明,它表示“URI未注册”
同样,项目结构没有任何变化,我只是升级到了Android Studio 3.0
谢谢
这是在/src/main
文件夹下的AndroidManifest.xml文件,它工作得非常好。问题在于/app/build/intermediates/manifests/full
文件夹中生成的AndroidManifest.xml文件-这些文件破坏了我的应用程序
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.appname">`
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".view.MainActivity"
android:noHistory="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".view.TabbedActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar"
android:screenOrientation="landscape"
android:configChanges="keyboardHidden|orientation|screenSize"
android:noHistory="true">
</activity>
</application>
<!-- PROTECTION_NORMAL permissions, automatically granted -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- DANGEROUS PERMISSIONS, must request -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
</manifest>
`
以下是调试或发布自动生成的清单不起作用的方式:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.appname"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="25" />
<!-- PROTECTION_NORMAL permissions, automatically granted -->
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<!-- DANGEROUS PERMISSIONS, must request -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<meta-data
android:name="android.support.VERSION"
android:value="25.3.1" />
<application
android:allowBackup="true"
android:debuggable="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme" >
<activity
android:name="com.domain.appname.view.MainActivity"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.domain.appname.view.TabbedActivity"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:noHistory="true"
android:screenOrientation="landscape"
android:theme="@style/AppTheme.NoActionBar" >
</activity>
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="25" />
</application>
</manifest>
以后编辑
我回到了Android Studio 2.3,将gradle插件设置回2.3.2,下面是自动生成的AndroidManifest.xml现在的样子:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.domain.appname.test" >
<uses-sdk
android:minSdkVersion="21"
android:targetSdkVersion="26" />
<instrumentation
android:name="android.support.test.runner.AndroidJUnitRunner"
android:functionalTest="false"
android:handleProfiling="false"
android:label="Tests for com.domain.appname"
android:targetPackage="com.domain.appname" />
<application>
<uses-library android:name="android.test.runner" />
</application>
</manifest>
不过,现在一切正常,请注意gradle 3.0.0下自动生成的清单文件与gradle 2.3.2下的清单文件之间的区别
我想我必须等到有人找到一个解决方案,让它在Gradle3.0.0下工作,同时在AndroidStudio 3.0中使用gradle插件2.3.2(我现在正在做,它可以工作)
因此,问题在于新的gradle 3.0.0-alpha9您可能有一个依赖项库(aar),它在清单中的应用程序标记内有一个
。因此,当它被合并时,您的应用程序也会有不正确的用法
这发生在我的旧本地版本的Android vlc上。我的清单文件中有一个category元素,该元素位于一个常规活动中,导致生成失败。在更新到as3-rc1和生成工具26+后将其删除。我的问题得到了解决。希望这对其他人有所帮助
<activity
android:name=".AboutUsActivity"
android:label="@string/title_activity_about_us"
android:parentActivityName=".MainActivity"
android:theme="@style/AppTheme.NoActionBar">
<category android:name="android.intent.category.DEFAULT" />
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.MainActivity" />
</activity>
如果问题仍然存在,请检查迁移到
Gragle插件
3.0.0版
得到了同样的错误,在我的例子中,
meta_data
而不是Manifest
文件中的meta-data
出现了打字错误,阻止了生成。请向我们展示文件。你可以走了吗……现在,如果你能告诉我们哪一行是49,那就更好了,这是第二个“屏幕截图”末尾的“uses sdk”语句“。但这几乎是不相关的,因为从文件开始,带有“xmlns:android=”“”的部分用红色下划线,并且这个特定自动生成的清单文件中几乎所有其他元素都用红色下划线,因为它无法加载URI,说“URI未注册”(记住,“真正的”AndroidManifest文件工作得非常好)。尝试删除中间版本或所有生成文件夹并重新生成应用程序。我的项目中确实有aar库。有趣。我现在在家,我不能检查,但很可能你是对的。