2017-01-10 7 views
2

私はAlarmManagerでサービスを管理できる簡単なテストプロジェクトを作成しています。私は何とか私のserviceフォルダに名前+.javaで新しいブロードキャストレシーバを作成するために管理し、今のAndroid StudioはAndroidManifestでこのコードの無効なブロックを生成:エラーが発生しAndroid Studio不正なマニフェストコードを生成します

<receiver 
     android:name=".service.+" 
     android:enabled="true" 
     android:exported="true" /> 

Error:(32) Tag <receiver> attribute name has invalid character '+'. 

ブロックを削除して再構築すると、Android Studioによってブロックが再生成され、エラーが繰り返されます。 これはマイナーなテストプロジェクトなので大きな問題ではありませんが、ディレクトリ全体を壊すことができない大きなプロジェクトでこの問題が発生した場合はどうなりますか?

私の質問は、このような奇妙な問題を解決するためにAndroid Studioが生成するコードブロックをどのように微調整できますか?

+4

にいつかここに出荷に向けてその方法を働いているAndroidのメーカー2.3で修正されなければなりませんブロックして再構築すると、Android Studioがブロックを再生成し、エラーが繰り返されます。 " - 間違ったファイルを編集している可能性があります。 Android Studioでマニフェストでこのようなエラーが発生すると、通常、問題が発生した元のマニフェストではなく、生成されたマニフェストが開きます。 – CommonsWare

+0

キャッシュを無効にしてテストしましたか? –

+0

@CommonsWareあなたは本当に正しいです!私はそれを受け入れることができるように、あなたの提案を言い換えて回答として投稿してください。そうすれば、あなたは信用を得ることができます。 –

答えて

3

a long-standing issue in Android Studioがあります。エラーが発生した場合、IDEはファイルの間違ったエディションを開きます。マニフェストの場合、Android Studioは、エラーの原因となった実際のマニフェストファイルではなく、マニフェストの合併プロセスからコード生成マニフェストを開く傾向があります。その結果、不注意な人(または睡眠時間が短い人物)は、生成されたマニフェストを編集し、次にそれが再生成され、編集を吹き飛ばす。

回避策は、変更が蒸発するように見えるときに編集しているファイルを再確認することです。おやすみに役立ちます。

::あくび::

問題によると、これは私が削除すると、」早い2017年

関連する問題