Android清单的android:exported =“ false”阻止应用程序在设备上运行

Hof*_*uzz 0 permissions android manifest

美好的一天,

在我的简单Andorid应用(实际上只是一个Webview应用)中,我在Android Manifest中添加了“ android:exported =“ false”,以避免出现“未经许可的导出服务”警告/漏洞,但是当我在设备上运行它时, “未安装应用程序”错误,除非将其更改为“ android:exported =“ true”,否则该应用程序将在我的设备上正常启动。

然后,我尝试按如下所示添加权限标签,以避免出现“没有权限的导出服务”警告,但该应用程序将无法再次运行。正确运行该应用程序的最佳方法是什么?我真的不需要导出任何服务。互联网权限用于我的应用程序中的某些注释链接,这些链接将在外部浏览器中打开。

抱歉,如果我刚接触Android开发,就缺少一些基本的知识,谢谢您的指导。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"   
package=com.mymundane.app">
<uses-permission android:name="android.permission.INTERNET" />
<permission android:name=com.mymundane.app.mypermission" 
  android:label="mypermission" android:protectionLevel="signature">
</permission>
<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label=com.mymundane.app"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:fullBackupContent="@xml/backup_descriptor">
    <activity android:name=com.mymundane.app.MainActivity" 
        android:exported="true"  android:screenOrientation="portrait" 
         android:permission=com.mymundane.app.mypermission">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

Moo*_*oom 5

“已导出”属性描述了是否可以允许其他人使用它。

因此,如果您在某个Activity上具有“ exported = false”,则其他应用程序甚至Android系统本身都无法启动它。只有您可以在自己的应用程序内部执行此操作。

因此,在标记为LAUNCHER Activity的Activity上设置“ exported = false”基本上会告诉系统它永远无法启动您的应用程序。

至于您提到的错误,清单中没有任何服务?该警告在哪里显示?