0

エミュレーターで問題なく動作するアプリを作成しました。電話にも問題なくインストールできると言っています。ただし、実行しようとすると、「アプリケーションが電話にインストールされていません」というエラーが表示されます。そこで、電話で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>

このセキュリティ例外が指しているアイデアはありますか? ありがとう!

4

3 に答える 3

2

表示されている java.lang.SecurityException は、同じアクティビティを指す 2 つのエントリを入力する可能性があるためです。2 番目のものを削除すると、準備完了です。

次のように、異なるプロパティを使用して、マニフェストでアクティビティを 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>

マニフェストから不要なものを削除する必要があります

于 2012-05-01T11:20:03.023 に答える
0

という名前のアクティビティがあります

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

これは、ランチャーからの意図されたアクティビティです。しかし、あなたが許可したアクティビティは「メインメニュー」です。それを除く。現在空白になっている「.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-05-01T11:23:05.840 に答える
0

アプリケーションで設定android:debuggable="true"します。

于 2012-05-01T11:20:12.510 に答える