2012-11-23 6 views
7

私はアンドロイドのアプリをモディファイしていましたが、実際のデバイス(Eclipseのアプリケーションを実行)で試してみると、すべてうまくいきました。私は私の変化の満足したときに、私はそれを解放するためのバージョンを変更するためにマニフェストを開いたが、マニフェストを変更することなく行目でエラーが発生しました:Android:マニフェストの奇妙なエラー

<uses-permission android:name="android.permission.INSTALL_PACKAGES" /> 

エラーは次のとおりです。

Permission is only granted to system apps 

これはどのように可能ですか?私はこの行を使って何度もアプリケーションをビルドしました。

答えて

18

ありがとうございます。私は奇妙な問題を解決しました

Project > Clean 

今すぐすべてが再びうまくいきます!

+2

この回答をupvoteしないでください - 実際の問題とは何も関係ありません。つまり、この許可はサードパーティアプリケーション**には利用できません。開発者が保護されたデバイスで行うことは、その事実を変えるものではありません。 –

+0

これは、再度コンパイルする方法の質問に答えます。 AFAIK INSTALL_PACKAGESはsignatureOrSystem権限であるため、デバイスが動作するシステムイメージにアプリケーションが追加されている限り、同じキーで署名された後続バージョンもアップデートとしてインストールされたときにアクセス権を取得する必要があります。 –

2

あなたは自分でパッケージをインストールすることはできませんが、それについても質問しないでください。その目的のために

使用Intent

Intent installIntent = new Intent(Intent.ACTION_VIEW); 
installIntent.setDataAndType(
    Uri.parse("file://" + context.getFilesDir().getAbsolutePath() + "/" + file_name_to_install), 
    "application/vnd.android.package-archive"); 
startActivity(installIntent); 

あなたはおそらく、それはあなたのマニフェストの古い/古いバージョンを使用している、とあなたがそれを開くと、変更がリロードされ、育った、Eclipseを使用していた場合エラーメッセージ。違反の許可を削除し、インテントを使用するだけです。

+1

私のアプリから新しいapkをインストールする必要があります。私はこの方法を数ヶ月使っていますが、私は問題に遭遇していません。しかし、今日は、私のこのエラーを、何の変化もなく示しています! – GVillani82

+0

android.permission.INSTALL_PACKAGESは、あなたのアプリが他のアプリをインストールできることを示していますが、この権限はシステムアプリにしか与えられないため、あなたのアプリは適用されません。ここにいくつかの情報があります:http://stackoverflow.com/questions/3476600/why-are-these-permissions-being-refused –

+2

@ Joseph82あなたは以前のバージョンのSDKを使っていたかもしれませんが、現在のものは 'INSTALL_PACKAGE'パーミッション危険なものとして "System or Signed"クラスに追加されました。これは、アプリケーションが '/ system/app'にインストールされていないか、または製造元の証明書で署名されていない限り、**この許可を使用できないことを意味します。 – lenik

2

リントの設定を変更した場合は、クリーニングが動作します。それ以外の場合は以下の解決策を確認してください。 - >設定 - >アンドロイド - >リントのエラーチェック

ウィンドウ:

Permission is only granted to system app

それはあなたのリント設定Eclipseで

を変更すると言います。

リストには、ID = ProtectedPermissionというエントリがあります。重大度をエラーより低い値に設定します。この方法でも、Eclipseを使用してプロジェクトをコンパイルできます。

AndroidのメーカーでAndroid Lintの下

File -> Settings -> Inspections 

Using system app permissionを探します。チェックボックスのチェックを外すか、エラーより重大度の低いものを選択してください。