猿问

Android-java.lang.SecurityException:权限拒绝:启动Intent

我在项目的构建路径上有一个库(jar)。该项目使用以下意图访问jar中的MainActivity:


final Intent it = new Intent();

it.setClassName("com.example.lib", "com.example.lib.MainActivity");

startActivity(it);

它曾经工作了一段时间,但是突然开始得到我能够解决的“ ActivityNotFoundException:找不到活动来处理Intent”。但是现在我陷入了“ java.lang.SecurityException:权限拒绝:启动意图”的困境。


我已经尝试了所有关于stackoverflow的建议(检查清单文件中的重复项;将android:exported =“ true”添加到lib清单; Eclipse> Project> Clean;添加/修改“ intent-filter”标签;等等)。我什至尝试重写项目清单,但是没有去做任何事情。

项目的清单XML:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="com.example.project"

android:versionCode="4"

android:versionName="4.0" >


<!-- Permissions -->

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

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

<supports-screens android:anyDensity="true" />


<!-- SDK Settings -->

<uses-sdk

    android:minSdkVersion="11"

    android:targetSdkVersion="18" />


<!-- APP Start -->

<application

    android:allowBackup="true"

    android:icon="@drawable/ic_launcher"

    android:label="@string/app_name"

    android:theme="@style/AppTheme" >


<!-- App Activity -->

    <activity

        android:name="com.example.project.MainActivity"

        android:label="@string/app_name"

        android:screenOrientation="portrait" >

        <intent-filter>

            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />

        </intent-filter>

    </activity>


<!-- Library Activity -->

    <activity android:name="com.example.lib.MainActivity" android:label="LibMain">

         <intent-filter>

        <action android:name="android.intent.action.MAIN"></action>

     </intent-filter>

    </activity>


</application>

<!-- END - APP -->


</manifest>

我在俯视什么?有什么建议么?


编辑


我使用其他所有活动更新了manifest.xml,并以某种方式解决了该问题。意向活动启动时没有任何错误。但是,仅在AVD上。在实际设备上,它仍然会抛出相同的错误。我已经从设备上完全卸载了该应用程序,然后重新安装,但是仍然出现相同的错误。


九州编程
浏览 1498回答 3
3回答

慕的地10843

例外很明显。您需要android:exported="true"在AndroidManifest.xml文件中设置声明this的位置Activity。编辑<activity&nbsp; &nbsp; android:name="com.example.lib.MainActivity"&nbsp; &nbsp; android:label="LibMain"&nbsp;&nbsp; &nbsp; android:exported="true">&nbsp; &nbsp; <intent-filter>&nbsp; &nbsp; &nbsp; &nbsp; <action android:name="android.intent.action.MAIN" >&nbsp; &nbsp; &nbsp; &nbsp; </action>&nbsp; &nbsp; </intent-filter></activity>

慕桂英3389331

这仅适用于android studio所以我最近遇到了这个问题。问题出在构建/运行配置中。显然,android studio在我的项目中选择了一个活动作为启动活动,因此无视清单文件中的选择。单击运行按钮左侧的模块名称,然后单击“编辑配置...”,现在确保已选择“启动默认活动”。发生此错误时,有趣的是,我仍然可以从设备启动应用程序,并且它以首选的Activity开始。但是从IDE启动似乎是不可能的。
随时随地看视频慕课网APP

相关分类

Android
我要回答