Android - java.lang.SecurityException: Permission Denial: starting Intent -


i have library (jar) on build path of project. project accesses mainactivity in jar, using following intent:

final intent = new intent(); it.setclassname("com.example.lib", "com.example.lib.mainactivity"); startactivity(it); 

it used work sometime, started getting 'activitynotfoundexception: no activity found handle intent' able resolve. stuck 'java.lang.securityexception: permission denial: starting intent'.

i have tried suggestions made on stackoverflow (check duplicates in manifest file; add android:exported="true" lib manifest; eclipse> project> clean; adding/ modifying 'intent-filter' tags; etc.). tried re-writing manifest of project not going anywhere it.

here's logcat output:

11-07 06:20:52.176: e/androidruntime(4626): fatal exception: main 11-07 06:20:52.176: e/androidruntime(4626): java.lang.securityexception: permission     denial: starting intent { cmp=com.example.lib/.mainactivity } processrecord{40dd3778     4626:com.example.project/u0a10046} (pid=4626, uid=10046) not exported uid 10047 11-07 06:20:52.176: e/androidruntime(4626):     @ android.os.parcel.readexception(parcel.java:1425) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.os.parcel.readexception(parcel.java:1379) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activitymanagerproxy.startactivity(activitymanagernative.java:1885) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.instrumentation.execstartactivity(instrumentation.java:1412) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activity.startactivityforresult(activity.java:3370) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activity.startactivityforresult(activity.java:3331) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.support.v4.app.fragmentactivity.startactivityforresult(fragmentactivity.java:824) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activity.startactivity(activity.java:3566) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activity.startactivity(activity.java:3534) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.example.project.mainactivity.onoptionsitemselected(mainactivity.java:93) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activity.onmenuitemselected(activity.java:2548) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.support.v4.app.fragmentactivity.onmenuitemselected(fragmentactivity.java:366) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.policy.impl.phonewindow.onmenuitemselected(phonewindow.java:980) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.view.menu.menubuilder.dispatchmenuitemselected(menubuilder.java:735) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.view.menu.menuitemimpl.invoke(menuitemimpl.java:149) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.view.menu.menubuilder.performitemaction(menubuilder.java:874) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.view.menu.actionmenuview.invokeitem(actionmenuview.java:547) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.view.menu.actionmenuitemview.onclick(actionmenuitemview.java:115) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.view.view.performclick(view.java:4204) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.view.view$performclick.run(view.java:17355) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.os.handler.handlecallback(handler.java:725) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.os.handler.dispatchmessage(handler.java:92) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.os.looper.loop(looper.java:137) 11-07 06:20:52.176: e/androidruntime(4626):     @ android.app.activitythread.main(activitythread.java:5041) 11-07 06:20:52.176: e/androidruntime(4626):     @ java.lang.reflect.method.invokenative(native method) 11-07 06:20:52.176: e/androidruntime(4626):     @ java.lang.reflect.method.invoke(method.java:511) 11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:793)  11-07 06:20:52.176: e/androidruntime(4626):     @ com.android.internal.os.zygoteinit.main(zygoteinit.java:560) 11-07 06:20:52.176: e/androidruntime(4626):     @ dalvik.system.nativestart.main(native method) 

manifest xml of project:

<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.project" android:versioncode="4" android:versionname="4.0" >  <!-- permissions --> <uses-permission android:name="android.permission.access_network_state" /> <uses-permission android:name="android.permission.internet" /> <supports-screens android:anydensity="true" />  <!-- sdk settings --> <uses-sdk     android:minsdkversion="11"     android:targetsdkversion="18" />  <!-- app start --> <application     android:allowbackup="true"     android:icon="@drawable/ic_launcher"     android:label="@string/app_name"     android:theme="@style/apptheme" >  <!-- app activity -->     <activity         android:name="com.example.project.mainactivity"         android:label="@string/app_name"         android:screenorientation="portrait" >         <intent-filter>             <action android:name="android.intent.action.main" />             <category android:name="android.intent.category.launcher" />         </intent-filter>     </activity>  <!-- library activity -->     <activity android:name="com.example.lib.mainactivity" android:label="libmain">          <intent-filter>         <action android:name="android.intent.action.main"></action>      </intent-filter>     </activity>  </application> <!-- end - app -->  </manifest> 

what overlooking? suggestions?

edit

i updated manifest.xml other activities & somehow, resolved problem. intent activity starts without errors. but, on avd. on actual device, still throwing same error. have uninstalled app device , reinstalled, yet same error.

the exception clear. need set android:exported="true" in androidmanifest.xml file declare activity.

edit

<activity     android:name="com.example.lib.mainactivity"     android:label="libmain"      android:exported="true">     <intent-filter>         <action android:name="android.intent.action.main" >         </action>     </intent-filter> </activity> 

Comments