0

부팅 할 때 시작되는 앱을 작성하려고합니다. 내 수신기가 작동하고 내 응용 프로그램이 부팅 할 때 시작되지만 ActivityNotFoundException 때문에 충돌이 발생합니다. 어딘가에 매니 페스트에서 엉망이되었을 수도 있습니다. 보세요.보세요.BOOT_COMPLETED receiver ActivityNotFoundException

이것은 수신자 코드입니다. LocationLock.class는 휴대 전화를 잠그기위한 것입니다. 다음은

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name=".LocationLock$Controller" 
       android:label="@string/app_name_controller"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <receiver android:name=".LocationLock" 
     android:label="@string/app_name" 
     android:permission="android.permission.BIND_DEVICE_ADMIN"> 
     <meta-data android:name="android.app.device_admin" 
        android:resource="@xml/device_admin" /> 
     <intent-filter> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
     </intent-filter> 
    </receiver> 
    <receiver android:name=".MyStartupIntentReceiver"> 
     <intent-filter> 
      <action android:name="android.intent.action.BOOT_COMPLETED" />  
     </intent-filter> 
    </receiver> 
</application> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

</manifest> 

<?xml version="1.0" encoding="utf-8"?> 

는 오류입니다 :
public class MyStartupIntentReceiver extends BroadcastReceiver { 
@Override 
public void onReceive(Context context, Intent intent){ 
    Intent myStarterIntent = new Intent(context, LocationLock.class); 
    myStarterIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myStarterIntent); 
} 
} 

매니페스트입니다

05-03 02:54:55.301: ERROR/AndroidRuntime(264): FATAL EXCEPTION: main 
05-03 02:54:55.301: ERROR/AndroidRuntime(264): java.lang.RuntimeException: Unable to start receiver org.example.locationlock.MyStartupIntentReceiver: android.content.ActivityNotFoundException: Unable to find explicit activity class {org.example.locationlock/org.example.locationlock.LocationLock}; have you declared this activity in your AndroidManifest.xml? 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2821) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ActivityThread.access$3200(ActivityThread.java:125) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2083) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.os.Handler.dispatchMessage(Handler.java:99) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.os.Looper.loop(Looper.java:123) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at java.lang.reflect.Method.invoke(Method.java:521) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at dalvik.system.NativeStart.main(Native Method) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264): Caused by: android.content.ActivityNotFoundException: Unable to find explicit activity class {org.example.locationlock/org.example.locationlock.LocationLock}; have you declared this activity in your AndroidManifest.xml? 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1404) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.Instrumentation.execStartActivity(Instrumentation.java:1378) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ContextImpl.startActivity(ContextImpl.java:622) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.content.ContextWrapper.startActivity(ContextWrapper.java:258) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.content.ContextWrapper.startActivity(ContextWrapper.java:258) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at org.example.locationlock.MyStartupIntentReceiver.onReceive(MyStartupIntentReceiver.java:12) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  at android.app.ActivityThread.handleReceiver(ActivityThread.java:2810) 
05-03 02:54:55.301: ERROR/AndroidRuntime(264):  ... 10 more 

어쩌면 나는 두 개의 수신기가 후 하나를 나열 할 수 없습니다 다른, 그러나 th e MyStartupIntentReceiver에는 연관된 활동이 없습니다.

도움을 주시면 감사하겠습니다.

답변

0

매니페스트에서 활동으로 정의 해 보았습니까?

예를 들어, 섹션 내 : 그것은 리시버 클래스로 선언 된 매니페스트 파일에 있기 때문에 Intent myStarterIntent = new Intent(context, LocationLock.class); : : 당신이 수신기 클래스를 시작하려고

<activity android:name=".MyStartupIntentReceiver" 
      android:launchMode="singleTop" 
      android:screenOrientation="portrait" 
      android:noHistory="true" /> 
1

<receiver android:name=".LocationLock" 그렇게 activiy이 선언을 수정합니다 :

<activity 
    android:name=".LocationLock" 
    android:windowSoftInputMode="stateVisible|adjustResize" > 
</activity>