2011-11-11 18 views
1

私は単純なアプリケーションを作成しようとしており、ApiDemosサンプルに従っています。私のアプリは起動時にクラッシュしています。私はマニフェストに問題があると思うが、わからない。どんなアイデアですか?Androidアプリを管理者として実行

public class managerActivity extends DeviceAdminReceiver { 
     public class Controller extends Activity { 

     static final int RESULT_ENABLE = 1; 

     DevicePolicyManager mDPM; 
     ActivityManager mAM; 
     ComponentName mDeviceAdminSample; 

     Button mEnableButton; 
     Button mDisableButton; 

     @Override 
      public void onCreate(Bundle savedInstanceState) { 

      super.onCreate(savedInstanceState); 

      mDPM = (DevicePolicyManager)getSystemService(Context.DEVICE_POLICY_SERVICE); 
      mAM = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE); 
      mDeviceAdminSample = new ComponentName(Controller.this, managerActivity.class); 

      setContentView(R.layout.main); 

     } 
    } 

、その後、私のマニフェストには、私が持っている:

11-11:15:20:52.310:ERROR/AndroidRuntime(553):

<application android:icon="@drawable/icon" android:label="@string/app_name"> 
    <activity android:name="com.appname.managerActivity$Controller" 
       android:label="@string/app_name"> 

     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
      <category android:name="android.intent.category.HOME" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 

     </intent-filter> 
    </activity> 

    <!-- Device Admin Samples --> 

    <receiver android:name="com.appname.managerActivity" 
      android:label="@string/sample_device_admin" 
      android:description="@string/sample_device_admin_description" 
      android:permission="android.permission.BIND_DEVICE_ADMIN"> 
     <meta-data android:name="android.app.device_admin" 
        android:resource="@xml/device_admin_sample" /> 
     <intent-filter> 
      <action android:name="android.app.action.DEVICE_ADMIN_ENABLED" /> 
     </intent-filter> 
    </receiver> 

ここでクラッシュがありますjava.lang.RuntimeException:アクティビティをインスタンス化できません ComponentInfo {com.appname.manager/com.appname.managerActivity $ Controller}: java.lang.InstantiationException: com.appname.managerActivity $ Controller

答えて

1

静的でない限り、ネストされたクラスは、その囲むクラスの外側から作成することはできません。アクティビティーをスタンドアロン・クラス(つまりネストされていないクラス)に移動するか、アクティビティー・クラスを静的にします。

+0

静的にすることは素晴らしい仕事をしました。私はとてもシンプルでとても幸せです。ありがとうございました! –

関連する問題