Запустите приложение Android от имени администратора - PullRequest
1 голос
/ 12 ноября 2011

Я пытаюсь написать простое приложение и следовать примеру ApiDemos.Мое приложение падает при запуске.Я подозреваю, что проблема с моим манифестом, но я не уверен.Любые идеи, пожалуйста?

    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);

        }
    }

, а затем в моем манифесте, у меня есть:

<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>

Вот сбой:

11-11 15:20: 52.310: ОШИБКА / AndroidRuntime (553): java.lang.RuntimeException: Невозможно создать экземпляр активности. ComponentInfo {com.appname.manager / com.appname.managerActivity $ Controller}: java.lang.InstantiationException: com.appname.managerActivity $ Controller

1 Ответ

1 голос
/ 12 ноября 2011

Вложенный класс не может быть создан извне его окружающего класса, если он не является статическим. Переместите свою деятельность в автономный класс (т.е. не вложенный) или сделайте класс активности статическим.

...