【问题标题】:Android app built in eclipse wont run on phoneeclipse内置的Android应用程序无法在手机上运行
【发布时间】:2012-05-01 11:16:21
【问题描述】:

我已经构建了一个在模拟器上运行良好的应用程序,并说它可以在手机上安装。但是,在尝试运行它时会弹出一个错误,提示“您的手机上没有安装应用程序”。所以我尝试在手机上通过 eclipse 运行该应用程序,但在控制台中出现了这个错误:

[2012-05-01 12:00:02 - MAD Assignment] ActivityManager: Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.mad.assignment/.MainMenu }
[2012-05-01 12:00:02 - MAD Assignment] ActivityManager: java.lang.SecurityException: Permission Denial: starting Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.mad.assignment/.MainMenu } from null (pid=8204, uid=2000) requires null

从其他地方寻找解决方案听起来好像是清单文件中的问题,所以这是我的:

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

<uses-sdk android:minSdkVersion="10" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name" 
     >
    <activity
        android:name="MainMenu"
        android:label="@string/app_name" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Diary"></activity>
    <activity android:name=".Info"></activity>
    <activity android:name=".MapMenu"></activity>
    <activity android:name=".RSSMenu"></activity>
    <activity android:name=".RSSFeedView"></activity>
    <activity android:name=".MainMenu"></activity>
    <activity android:name=".RSSDetailed"></activity>
    <activity android:name=".DiarySchedule"></activity>
    <activity android:name=".DiaryAddEntry"></activity>
    <activity android:name=".DiaryEditEntry"></activity>
    <activity android:name=".DiaryDetailed"></activity>
    <activity android:name=".RSSDetailed"></activity>
    <uses-library android:name="com.google.android.maps"/>
    <activity android:name=".MapMain"></activity>
    <activity android:name=".RSSFeedView"></activity>
    <activity android:name=".MapWhatsNearPreferences"></activity>
    <activity android:name=".RoutePath"></activity>
</application>

任何想法这个安全异常指向什么?谢谢!

【问题讨论】:

  • 你的错误信息中有意义的部分被截断了,你需要张贴全幅
  • 可能是您尝试两次声明相同的活动。删除 并重试。
  • 这是控制台中的完整错误

标签: android eclipse apk


【解决方案1】:

您看到的 java.lang.SecurityException 是因为您可能输入了两个指向同一活动的条目。删除第二个,你应该很高兴。

您可以在清单中以不同的属性声明该活动 2 次,例如:

 <activity android:name=".MainMenu"> </activity>

 <activity android:name=".MainMenu" android:label="@string/app_name"> 
     <intent-filter> 
         <action android:name="android.intent.action.MAIN" />
         <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
 </activity>

您应该从清单中删除不需要的项

【讨论】:

    【解决方案2】:

    在应用下设置android:debuggable="true"

    【讨论】:

      【解决方案3】:

      您有一个名为

      的活动
      <activity android:name=".MainMenu"></activity>
      

      这是来自启动器的 Intent'ed 活动。但是您允许的活动是“Mainmenu”。去掉它。将权限等添加到现在空白的“.Mainmenu”中。

      即,

      “活动”组应该是

          <activity
              android:name=".MainMenu"
              android:label="@string/app_name" >
              <intent-filter>
                  <action android:name="android.intent.action.MAIN" />
      
                  <category android:name="android.intent.category.LAUNCHER" />
              </intent-filter>
          </activity>
          <activity android:name=".Diary"></activity>
          <activity android:name=".Info"></activity>
          <activity android:name=".MapMenu"></activity>
          <activity android:name=".RSSMenu"></activity>
          <activity android:name=".DiarySchedule"></activity>
          <activity android:name=".DiaryAddEntry"></activity>
          <activity android:name=".DiaryEditEntry"></activity>
          <activity android:name=".DiaryDetailed"></activity>
          <activity android:name=".RSSDetailed"></activity>
          <uses-library android:name="com.google.android.maps"/>
          <activity android:name=".MapMain"></activity>
          <activity android:name=".RSSFeedView"></activity>
          <activity android:name=".MapWhatsNearPreferences"></activity>
          <activity android:name=".RoutePath"></activity>
      

      并删除重复项。为什么要添加这么多重复的“活动”?

      【讨论】:

        猜你喜欢
        • 2012-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-19
        • 2017-03-11
        相关资源
        最近更新 更多