2011-12-25 75 views
0

嗨,我想建立我的项目,但我得到了如下因素误差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重新活动我的应用程序开始正常,但有任何其他活动启动代码会引发上述错误。有没有人知道这是为什么?

回答

3

通常,requires nullSecurityException表示该组件未导出。在你的情况下,这不应该是一个问题 - 当它有一个<intent-filter>时,会自动导出一个活动。我会决定你的应用中的哪些活动将具有<intent-filter>,并从设备/模拟器中完全卸载该应用,然后重新安装以查看是否有帮助。

顺便说一句,普通的SDK应用程序不能容纳ACCESS_CHECKIN_PROPERTIES

+0

有深刻的答案@Commons。您如何设法找到有关导出活动的“需要空值”的信息?我试图成为一个更有知识的Android开发人员,但如果我没有从SO这样的回答中读到它,我就永远不会做出这样的连接。另外,这是否意味着如果一个Activity不包含'intent-filters',那么它不能被另一个应用程序恶意地/偷偷地调用? – 2012-07-18 01:53:20

+1

@Turbo:“您是如何设法找到有关导出活动的null要求信息的? - IIRC,Dianne Hackborn在android开发者主题中提到了它。 “另外,这是否意味着如果一个活动不包含意图过滤器,那么它不能被另一个应用程序恶意地/秘密地调用?” - 有一个“android:exported”属性,用于控制第三方是否可以调用该活动。有一个''将默认的'android:exported'设置为'true';否则,默认值为'false'。 – CommonsWare 2012-07-18 11:32:29

+0

所以只要没有包含意图过滤器,'android:exported'标签没有设置为'true',那么其他应用程序就不应该启动另一个应用程序的活动? – 2012-07-18 20:25:31