سؤال

في برنامجي يضيف اختصار إلى الشاشة. أحصل على أيقونة على الشاشة غرامة، ولكن عندما اضغط عليها، وأحصل على:

03-01 20:00:29.410: ERROR/AndroidRuntime(796): java.lang.SecurityException: Permission Denial: starting Intent { data=http://www.example.com/ flags=0x14000000 comp={com.isaacwaller.example/com.isaacwaller.example.ExampleCut} } from ProcessRecord{435c7398 796:android.process.acore/10005} (pid=796, uid=10005) requires null

هل تعرف هذه المشكلة؟ شكرا،
إسحاق

هل كانت مفيدة؟

المحلول 2

وترد عليها، وأن أضفت هذا تحت العلامة <activity> النشاط:

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

نصائح أخرى

وكان لي شيئا من هذا القبيل يحدث عندما كنت قد تتكرر بطريق الخطأ علامة النشاط لأحد نشاطاتي في بلدي البيان. كان لي شيئا من هذا القبيل في القسم طلبي.

<activity android:name=".ConventionHome" 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="ConventionHome"></activity>

عند أزلت علامة النشاط الثانية، بدأت الأمور تعمل بشكل طبيعي.

وشيء من هذا القبيل يجب أن تعمل:

<intent-filter>
    <action android:name="com.example.Project.Action"/>
    <category android:name="android.intent.category.DEFAULT"/>
</intent-filter> 

وداخل إعلان آخر في البيان.

وأنا واجهت هذه المشكلة أيضا، واتضح أنه كان لأن آخر لم تتعرض لعمليات أخرى. كان لي أن أضيف الروبوت: تصدير = "true" السمة إلى العلامة النشاط في بلدي البيان.

http://developer.android.com/guide /topics/manifest/activity-element.html#exported لمزيد من المعلومات.

وأنا لم تصل الى هذا شخصيا لكنني لم تفعل بعض البحوث وجدت ما يلي:

ويبدو أن كل ما هو محاولة استدعاء التطبيق الخاص بك أو إذا كان التطبيق لديه دعوة لخلق وجود نية وبدء نشاط بعض نية UID ليست هي نفسها.

في ActivityManagerServer.java هناك تحت الحكم فيها.

int checkComponentPermission(String permission, int pid, int uid, int reqUid)
// If the target requires a specific UID, always fail for others.
   if (reqUid >= 0 && uid != reqUid) {
       return PackageManager.PERMISSION_DENIED;
   }

وانا ذاهب الى القيام ببعض التجارب على ذلك ونرى ما اذا كان يمكن إنتاج هذه في تطبيق الاختبار وتقديم أي تعليقات إضافية.

تأكد من أنك تحاول فقط لاستدعاء الأنشطة يتعرض للجمهور من خلال أي المقاصد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top