为什么我的Android清单没有合并?

时间:2017-07-06 20:00:32

标签: android

所以我创建了一个Android库,该库有一个服务活动,并在lib清单中声明了一些权限。 我还有一个使用lib jar的演示应用程序。所以我想要做的是在该演示应用程序或任何其他应用程序上使用该lib,而无需每次使用lib时声明活动,服务以及可能的权限。 如果我没有声明活动,那么演示应用程序中的服务和权限我的演示应用程序会在运行时崩溃。我所知道的; Android合并了清单,但我不认为它正在这样做。 这是我的lib清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.mylib">

    <!-- This app records A/V content from camera and stores it to disk -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.RECORD_VIDEO" />
    <uses-permission android:name="android.permission.RECORD_AUDIO" />
    <uses-permission android:name="android.permission.CAMERA" />

    <uses-feature android:name="android.hardware.camera" />

    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

    <application>
        <activity android:theme="@style/Transparent"
            android:name="org.mylib.activities.CheckStoragePermissionsActivity"/>

        <service android:theme="@style/Transparent" android:name="org.mylib.services.BackgroundVideoRecorder"/>
    </application>

</manifest>

这是我的演示应用程序清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="mx.mydemo">

    <application
        android:name=".App"
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">

        <activity android:name=".activity.LoginActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".activity.RegisterUserActivity" />
        <activity android:name=".activity.LogGameDataActivity" />
        <activity android:name=".activity.GameResultsActivity" />
        <activity android:name=".activity.PasswordResetActivity" />

    </application>

</manifest>

我的任何清单中是否存在不允许合并的错误? lib清单包和demo app manifest包是否需要是同一个包?

问候

1 个答案:

答案 0 :(得分:1)

  

顺便说一句,lib和demo应用程序是2个不同的独立项目,我在demo lib文件夹中粘贴了lib jar,然后我告诉android studio将jar作为库导入。

那不行。 JAR只是Java代码;它不包含库模块中的清单,资源或资产。

或者:

  • 将这些项目作为单独的模块移动到一个项目中,然后在演示项目中使用compile project()语法来引入库模块,或

  • 将库模块作为AAR发布到工件库(开发机器上的本地存储库,Maven Central,JCenter,等等),并让演示应用程序从那里将其拉入,或者

  • 将AAR而非JAR从库项目复制到演示项目中

我强烈推荐前两个选项中的任何一个。

相关问题