2017-04-26 40 views
0

現在、クラスライブラリ(Android)プロジェクトで作業中です。 このプロジェクトは複数の他のプロジェクトと連携していると考えられているため、各メインプロジェクトが持つテーマを事前に知る方法はありません。 しかし、私は、マニフェストのアプリケーションタグにTheme.AppCompatがなくても動作しないv7.AlertDialogを使用しようとしていますが、クラスライブラリのマニフェスト(Android)はありません。AssemblyInfoテーマ、クラスライブラリ(Android)Xamarin

私は、assemblyinfo.csファイルを使用してアクセス許可と機能を要求して成功しました。今、私は以下を追加しようとしています:このコードが実行されるとき

[assembly: Application(Theme = "@android:style/Theme.AppCompat.Light")] 

しかしそれは失敗します。

   AlertDialog7.Builder builder = new AlertDialog7.Builder(this); 
       AlertDialog7 alert = builder.Create(); 
       alert.Show(); 

出力: 未処理の例外を:Java.Lang.IllegalStateExceptionを:あなたがテーマを使用する必要があります。このアクティビティを持つAppCompatテーマ(または子孫)。私は、アプリケーションのタグにこれを追加した場合

、プロジェクトは何の問題もなく動作します:

AlertDialog7.Builder builder = new AlertDialog7.Builder(this, <THEME>); 

も試してみました:私も失敗したAlertDialogにテーマを追加しようとしました

android:theme="@style/Theme.AppCompat.Light" 

また失敗したアクティビティタグに追加する:

[Activity(Theme = <THEME>)] 

質問:どのように私はmaクラスライブラリ(Android)がメインプロジェクトテーマとは独立して正常に動作することを確認してください。メインプロジェクトマニフェストを使用せずにテーマをクラスライブラリプロジェクトに追加するにはどうすればよいですか?

答えて

0

時間を費やして、私は最終的に問題を投稿した直後に解決策を得ました。

私は単にこれから変更:これに

[assembly: Application(Theme = "@android:style/Theme.AppCompat.Light")] 

[assembly: Application(Theme = "@style/Theme.AppCompat.Light")] 
関連する問題