2015-12-02 13 views
14

は、私が(二つのフレームレイアウトを置く).xmlファイルにVisual StudioとのみCHE内の1つの新しいプロジェクトを作成しましたが予期せず失敗したと私は、コードをデバッグするとき、私は1個のエラーを持って、私に解決策を語ってくださいは「GenerateJavaStubs」タスクは

Error 1 The "GenerateJavaStubs" task failed unexpectedly. 
System.InvalidOperationException: Sequence contains no elements 
at System.Linq.Enumerable.Max(IEnumerable`1 source) 
at Xamarin.Android.Tools.TypeNameMapGenerator.WriteBinaryMapping(Stream o, Dictionary`2 mapping) 
at Xamarin.Android.Tools.TypeNameMapGenerator.WriteJavaToManaged(Stream output) 
at Xamarin.Android.Tasks.GenerateJavaStubs.UpdateWhenChanged(String path, Action`1 generator) 
at Xamarin.Android.Tasks.GenerateJavaStubs.WriteTypeMappings(List`1 types) 
at Xamarin.Android.Tasks.GenerateJavaStubs.Run() 
at Xamarin.Android.Tasks.GenerateJavaStubs.Execute() 
at Microsoft.Build.BackEnd.TaskExecutionHost.Microsoft.Build.BackEnd.ITaskExecutionHost.Execute() 
at Microsoft.Build.BackEnd.TaskBuilder.<ExecuteInstantiatedTask>d__20.MoveNext() TMS_TabletView.Droid 
+0

付属のFrameLayoutsを使用して.xml(.axml?)ファイルを投稿できますか? – joe

+1

Xamarin.Android 6.0.2.1で同様のエラーが修正されました:https://bugzilla.xamarin.com/show_bug.cgi?id=36036 更新後も引き続きこの問題が発生していますか? –

答えて

15

あなたがCrossCurrentActivityを使用Xamarin Pluginsのいずれかを使用する場合、これはまだ例Plugins.Shareのために、あなたは、[アプリケーション]タグで、Applicationクラスを持っている場合、発生することがあります。これは、ナゲットのインストール時に同じタグを持つ別のApplicationクラスを生成し、 'GenerateJavaStubs'エラーが発生するためです。

解決策は単純にApplicationクラスの1つを削除して1つにマージします。

+0

これはちょうど毎回私に刺さる。 –

+0

私はこのCrossCurrentActivityを追加するだけでした。しかし、別のアプリケーションクラスがないとどうなりますか?しかし、スプラッシュ画面として動作するようにランチャーとして設定されているアクティビティはありますか? – Dpedrinha

0

私はこの問題を経験し、そして(Xamarin付き)のVisual Studio Professionalの2015年に私の非常に最初のアプリを作成中、すべて同じエラーメッセージを得ました。これが他の誰にも使われるかどうかは分かりませんが、私たちは問題を解決したものを見つけました。

MainActivity.csには、最初に「ブランクアプリケーション」プロジェクトを開いたときにいくつかのデフォルトコードがありますが、このコードの一部を削除してコピー/ペーストしました。それを修正するには

namespace App3 
{ 
    [Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 
     int count = 1; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.Main); 

      // Get our button from the layout resource, 
      // and attach an event to it 
      Button button = FindViewById<Button>(Resource.Id.MyButton); 

      button.Click += delegate { button.Text = string.Format("{0} clicks!", count++); }; 
     } 
    } 
} 

:これは、最初にどのように見えるかである私たちは、MainActivity.csコードにこれらの行をバック入れてみました:

[Activity(Label = "App3", MainLauncher = true, Icon = "@drawable/icon")] 
    public class MainActivity : Activity 
    { 
     int count = 1; 

     protected override void OnCreate(Bundle bundle) 
     { 
      base.OnCreate(bundle); 

      // Set our view from the "main" layout resource 
      SetContentView(Resource.Layout.Main); 

      // Get our button from the layout resource, 
      // and attach an event to it 
      Button button = FindViewById<Button>(Resource.Id.MyButton); 

をそして、我々は、コードを実行し、エラーが去っていきました。恐らくちょっとした間違いかもしれませんが、常に問題を解決するわけではありませんが、それは私たちのために働いていました。

2

あなたはActivityクラスにコンストラクタを持っている場合は、デフォルトコンストラクタを追加してください。 または、クラス内のコンストラクタを削除できます。

これは、古いソースコードです。

[Activity(Label = "MyActivity", ScreenOrientation = ScreenOrientation.Portrait)] 
public class MyActivity : BaseActivity 
{ 
    bool param; 

    protected override int LayoutResource 
    { 
     get 
     { 
      return Resource.Layout.myactivity; 
     } 
    } 

    public MyActivity(bool param = false) 
    { 
     this.param = param; 
    } 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
    } 

    ... 
} 

これは、新しいソースコードを更新しています。私にとって

[Activity(Label = "MyActivity", ScreenOrientation = ScreenOrientation.Portrait)] 
public class MyActivity : BaseActivity 
{ 
    bool param; 

    protected override int LayoutResource 
    { 
     get 
     { 
      return Resource.Layout.myactivity; 
     } 
    } 

    public MyActivity() 
    { 
    } 

    public MyActivity(bool param = false) 
    { 
     this.param = param; 
    } 

    protected override void OnCreate(Bundle savedInstanceState) 
    { 
     base.OnCreate(savedInstanceState); 
    } 

    ... 
} 
4

これはXamarin共有プラグイン(​​)をインストールした後に起こりました。問題を解決し、そしてあなたが本当にとにかく必要として、私はその後、MainActivityにテーマを設定

[assembly: Application(Theme = "@style/AppStyle.myApp")] 

単純にこの行を削除:私は、以下の行をしてそのassemblyinfo.csで私のAndroidアプリのテーマを設定しました。

+1

私は '[assembly:Application(Debuggable = true)]'を持っていました。この行を削除すると助けになりました:) –

+0

@WojciechKulikはリリースモードで公開しようとしたときに問題がありましたか(「apkはデバッグ可能、アップロードに失敗しました」)? –

0

何らかの理由で私のAndroidのクラスライブラリは、Android用アプリケーションタイプに変更してしまったので、私はこの問題を持っていた - ので、VSは、プロジェクト内のApplicationクラスを探していました。

ソリューションは空白アンドロイドクラスライブラリを作成し、プロジェクトファイルを比較することでした。 「アプリケーション」に固有の破損したプロジェクトからxmlタグを削除しました。 のように[<] AndroidApplication> true [<]/AndroidApplication>

1

私は同じ問題を抱えていました。 「パスが長すぎます.blaの名前は248文字を超えてはならず、もう1つのblaは260文字を超えることはできません」

プロジェクト名を短縮すると問題が解決しました。

+1

プロジェクト名が長すぎます。それを短くし、すべてがうまくいった。 –

関連する問題