Android的Java权限拒绝的manifest.xml
问题描述:
嗨,我想建立我的项目,但我得到了如下因素误差Android的Java权限拒绝的manifest.xml
ActivityManager:java.lang.SecurityException异常:权限拒绝:启动意向{行动= android.intent.action .MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10000000 cmp = com.my_app.app/.choose_language} from null(pid = -1,uid = -1)require null
我的清单文件是如下
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.my_app.app"
android:versionCode="1"
android:versionName="1.0" >
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CALL_PHONE" />
<uses-permission android:name="android.permission.ACCESS_CHECKIN_PROPERTIES" />
<uses-sdk
android:targetSdkVersion="7"
android:minSdkVersion="7"
/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<activity
android:label="@string/app_name"
android:name=".Scan_AppActivity"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".nearby_exhibits"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:label="@string/app_name"
android:name=".SegmentedRadioActivity"
android:theme="@android:style/Theme.Light" >
</activity>
<activity
android:label="@string/app_name"
android:name=".ds_main_page"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".my_scan"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".help_menu"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".choose_language"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter >
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".splash_screen"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".register_screen"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".login"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name=".attraction_more_info"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
<activity
android:name="chosen_my_scan_attraction"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
</application>
</manifest>
如果我删除意图过滤器的一部分,并将其添加到我的飞溅sc重新活动我的应用程序开始正常,但有任何其他活动启动代码会引发上述错误。有没有人知道这是为什么?
答
通常,requires null
在SecurityException
表示该组件未导出。在你的情况下,这不应该是一个问题 - 当它有一个<intent-filter>
时,会自动导出一个活动。我会决定你的应用中的哪些活动将具有<intent-filter>
,并从设备/模拟器中完全卸载该应用,然后重新安装以查看是否有帮助。
顺便说一句,普通的SDK应用程序不能容纳ACCESS_CHECKIN_PROPERTIES
。
有深刻的答案@Commons。您如何设法找到有关导出活动的“需要空值”的信息?我试图成为一个更有知识的Android开发人员,但如果我没有从SO这样的回答中读到它,我就永远不会做出这样的连接。另外,这是否意味着如果一个Activity不包含'intent-filters',那么它不能被另一个应用程序恶意地/偷偷地调用? – 2012-07-18 01:53:20
@Turbo:“您是如何设法找到有关导出活动的null要求信息的? - IIRC,Dianne Hackborn在android开发者主题中提到了它。 “另外,这是否意味着如果一个活动不包含意图过滤器,那么它不能被另一个应用程序恶意地/秘密地调用?” - 有一个“android:exported”属性,用于控制第三方是否可以调用该活动。有一个''将默认的'android:exported'设置为'true';否则,默认值为'false'。 –
CommonsWare
2012-07-18 11:32:29
所以只要没有包含意图过滤器,'android:exported'标签没有设置为'true',那么其他应用程序就不应该启动另一个应用程序的活动? – 2012-07-18 20:25:31