2017-05-24 17 views
3

私はデバイスの所有者としてこのアプリを設定するためにこのtutorialをフォローしていました。このチュートリアルでは、「adbを使用してデバイス所有者を設定する」セクションがあります。デバイスに複数のユーザーが既にいるため、デバイスの所有者を設定できません

adb server is out of date. killing... 
* daemon started successfully * 
java.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device 
    at android.os.Parcel.readException(Parcel.java:1629) 
    at android.os.Parcel.readException(Parcel.java:1574) 
    at android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:5146) 
    at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:114) 
    at com.android.commands.dpm.Dpm.onRun(Dpm.java:82) 
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:47) 
    at com.android.commands.dpm.Dpm.main(Dpm.java:38) 
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:257) 

私はこのSO linkと助けたディエゴ・Plascenciaララの答えは続く:これは私にエラーを与えた

adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver 

:チュートリアルでは、ここではキオスクモードのデモアプリケーションをインストールした後、次のコマンドを実行することを言います私は

adb server is out of date. killing... 
* daemon started successfully * 

を取り除くためにしかし、まだ次のエラーがadb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiverコマンドを実行した後に発生している:

java.lang.IllegalStateException: Not allowed to set the device owner because there are already several users on the device 
    at android.os.Parcel.readException(Parcel.java:1629) 
    at android.os.Parcel.readException(Parcel.java:1574) 
    at android.app.admin.IDevicePolicyManager$Stub$Proxy.setDeviceOwner(IDevicePolicyManager.java:5146) 
    at com.android.commands.dpm.Dpm.runSetDeviceOwner(Dpm.java:114) 
    at com.android.commands.dpm.Dpm.onRun(Dpm.java:82) 
    at com.android.internal.os.BaseCommand.run(BaseCommand.java:47) 
    at com.android.commands.dpm.Dpm.main(Dpm.java:38) 
    at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method) 
    at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:257) 

なぜこのエラーが発生しますか?これを削除するにはどうすればよいですか?私は以前、デバイスの所有者として別のアプリケーションを設定しようとしていたが、私はそれらを完全に取り除くことはできなかったと思うし、アプリケーションをデバイス上で実行する全手順を完了している間、

答えて

2

この投稿は、DPMコマンドで本当に良いの概要与える:ポストの終わり近く http://florent-dupont.blogspot.fr/2015/01/android-shell-command-dpm-device-policy.html

を、この更新が追加されました: 「デバイスの所有者は、それがない限り、未プロビジョニングデバイス上で設定することができます「adb」によって開始されました。この場合、デバイスに関連付けられているアカウントがない場合は許可されます」というメッセージが表示されるので、使用前に現在のユーザーに関連付けられたアカウント(Gmailなど) dpmコマンド "

あなたのアプリをインストールしてデバイスの所有者として設定することをお勧めします。 dpm の後にアカウントを設定せずにGoogleウィザードを使用してデベロッパーモードを有効にし、最後に「USBデバッグ」を有効にしてください...

3

デバイスを工場でリセットすることなくこの問題を解決する方法があります。デバイスからすべてのアカウントを削除するだけです([設定] - > [アカウント])。これを行う前にデータを同期して、後で復元することができます。すべてのアカウントを削除した後、コンピュータに携帯電話を接続して、コマンドを実行します:あなたはこのようなメッセージが表示された場合

adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiver

を:

Success: Device owner set to package ComponentInfo{org.bluetooth.bledemo/org.bluetooth.bledemo.AdminReceiver} 
Active admin set to component {org.bluetooth.bledemo/org.bluetooth.bledemo.AdminReceiver} 

は自分が成功したことを検討してください。これで、以前に削除したすべてのアカウントを元に戻すことができます。

別の方法は:工場出荷時のリセットは以前、お使いの携帯電話は、アカウント(たとえばGmailアカウントを)持っていた場合は、デバイスの所有者としてアプリケーションを設定する方法の一つであり、答えにスティーブMiskovetzで指摘したように。しかし、Androidや携帯電話の最近のバージョンでは、工場出荷時の設定をリセットした後、Googleアカウントを設定しない限り、前進することはできません。だから、これを解決するには、Googleアカウントを登録して、携帯電話が正常な動作可能状態に戻ったら、設定 - >アカウントでそのアカウントを削除します。今必要なのはenable developer mode and then USB debuggingです。その後、携帯電話をコンピュータに接続し、adb shell dpm set-device-owner sdg.example.kiosk_mode/.AdminReceiverというコマンドを実行します。

関連する問題