質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.53%

  • C#

    7076questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Xamarin

    496questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。

C# Xamarin NGraphics library のデモを動かしたい。

解決済

回答 1

投稿 編集

  • 評価
  • クリップ 1
  • VIEW 741

esucht_amem

score 3

C#、Xamarin 初心者です。

動かしながら勉強しようと思い、
NGraphics library(https://github.com/chrfalch/NControl/) を
ダウンロードして、Visual Studio のソリューションエクスプローラの
DEMOS -> NControlDemo.FormsApp(移植可能)を
ビルド・デバッグの開始 しましたが、
「クラスライブラリの出力タイプを持つプロジェクトを直接起動することができません」
とエラーになりました。
どのようにすれば、DEMOを動かせるるのでしょうか。

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

エラー内容の通り、起動しようとしているのが、PCLのライブラリだからです。
動かしたいプラットフォームのプロジェクトをターゲットにして(Androidであれば「~~.Droid」、iOSであれば「~~.iOS」)実行してみてください。

余計なお世話かもしれませんが、初心者の方が動かす場合、GitHub上のしばらく更新されていないリポジトリは各ツールのバージョンが異なるためにうまく動かない可能性があります。
公式のサンプル(https://github.com/xamarin/xamarin-forms-samples)を動かしてみた方がいいかもしれません。
https://github.com/xamarin/xamarin-forms-samples/tree/master/XamlSamples とかはいろんなコントロールのサンプルになるのでお勧めです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/01/30 10:19

    ありがとうございます。
    「~~.Droid」の方を動かしたのですが、
    「警告 Mac サーバーへの接続を確立するためのアドレスとユーザーが指定されていないため、プロジェクト 'NControl.iOS' に対してメイン アセンブリのみコンパイルされました。Mac サーバーに接続して完全なアプリケーションをビルドし直してください。 NControl.iOS」
    「警告 Mac への使用可能な接続がないため、タスク Xamarin.MacDev.Tasks.CollectBundleResources は実行されません NControlDemo.iOS」
    「警告 Mac への使用可能な接続がないため、タスク ResolveUniversalTypeIdentifiers は実行されません NControlDemo.iOS」
    「警告 Mac サーバーへの接続を確立するためのアドレスとユーザーが指定されていないため、プロジェクト 'NControlDemo.iOS' に対してメイン アセンブリのみコンパイルされました。Mac サーバーに接続して完全なアプリケーションをビルドし直してください。 NControlDemo.iOS」
    と、Mac サーバーを用意していないのでエラーがでます。

    やりたいことは、角度を指定して円を描きたいのですが、公式のサンプルを見ても見つけられなくて、NGraphics libraryを確認しようとしました。

    XamlSamples を確認してみます。
    教えてくださり、ありがとうございます。

    キャンセル

  • 2018/01/31 14:52

    現時点で実行できていないってことですかね?

    Macとどうのこうのっという警告はおそらくiOSのプロジェクトがビルド対象になっていると思われます。
    ビルドの構成がデフォルトだと「Any CPU」になっていると思いますが、ビルド構成マネージャーからiOS関連のプロジェクトを対象外にすること、Androidのプロジェクトが「配置」対象になっていることを確認してみてください。
    あと気を付ける点としてはいきなり実行するのではなく、一度~.Droidプロジェクトをビルドしてからデバック実行した方がいいかもしれません。

    キャンセル

  • 2018/01/31 16:53 編集

    何度もありがとうございます。
    ご指摘通り、現時点で実行できていません。

    >ビルドの構成がデフォルトだと「Any CPU」になっていると思いますが、ビルド構成マネージャーからiOS関連のプロジェクトを対象外にすること、Androidのプロジェクトが「配置」対象になっていることを確認してみてください。
    ⇒確認し、OKでした。

    >あと気を付ける点としてはいきなり実行するのではなく、一度~.Droidプロジェクトをビルドしてからデバック実行した方がいいかもしれません。
    ⇒ソリューションのクリーン後、ソリューションのビルド
    ⇒⇒ すべてリビルド: 6 正常終了、0 失敗、2 スキップ

    ソリューションプラットフォーム 「Any CPU」
    スタートアッププロジェクト 「NControlDemo.Droid」で、デバッグ開始
    ⇒ポップアップウィンドウに「配置エラーが発生しました。続けますか?」
    ⇒⇒はい(Y)
    ⇒⇒⇒出力ウィンドウ「ビルドに失敗しました: Xamarin.Android では前のバージョンの実行をサポートしていません。ソリューション ビルドを確認してから実行、またはデバッグしてください。」

    ⇒⇒いいえ(N)
    ⇒⇒⇒出力ウィンドウ「
    1>アプリケーションを実行する前に有効なデバイスを選択してください。
    1>------ 配置開始: プロジェクト:NControlDemo.Droid, 構成: Debug Any CPU ------
    1>エラー:取り消されました。
    ========== 配置: 0 正常終了、1 失敗、0 スキップ ==========


    このような状況で実行できていません。m(__)m

    キャンセル

  • 2018/02/01 11:03

    実行しようとしているAndroidは何でしょうか?またそれが認識されているのでしょうか?
    以下を確認してみてください。
    ・実機orシュミレーター
    ・AndroidがVisualStudioに認識されているか(ツールバーのデバッグ開始ボタンのところに端末名が表示されているか。「▷開始」となっていたら認識されていません。)
    ・AndroidのOSバージョン
    ・開発端末に入っているAndroid SDKが適切か(上の回答によってどれが適切かは変わる可能性があります。)

    キャンセル

  • 2018/02/01 11:06

    何度もありがとうございます!
    「▷開始」となっています。
    確認してみます。

    キャンセル

  • 2018/02/02 00:00

    Manifest.xml に
    android:minSdkVersion="18"
    と書かれているのに、Version="16"の実機とエミュレータ を使ってました。

    コンパイルのAndroidバージョンをAndroid7.0・実機も7.0にして、
    デバッグ開始ボタンのところに端末名:****Android7.0 を実行しました。
    (やっとここまできました。ありがとうございます。)

    すると、
    「アプリケーションはブレークモードになっています」
    「お使いのアプリはブレーク状態になりましたが、すべてのスレッドが外部コード (通常はシステム コードまたはフレームワーク コード) を実行していたため、表示されるコードはありません。」
    「ハンドルされていない例外
    Unhandled Exception:

    Java.Lang.RuntimeException: Unable to instantiate activity ComponentInfo{ncontroldemo.ncontroldemo/md584e75cc6fb7b4b862f88e6840b20126d.SplashActivity}: java.lang.ClassNotFoundException: Didn't find class "md584e75cc6fb7b4b862f88e6840b20126d.SplashActivity" on path: DexPathList[[zip file "/data/app/ncontroldemo.ncontroldemo-1/base.apk"],nativeLibraryDirectories=[/data/app/ncontroldemo.ncontroldemo-1/lib/arm64, /system/fake-libs64, /data/app/ncontroldemo.ncontroldemo-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64, /system/vendor/lib64, /product/lib64]]

    となり、F11を押すとデバッグ終了します。
    デモの確認はもう少しかかりそうです。><

    キャンセル

  • 2018/02/02 21:03

    Android 7.0の場合は対象のSDKバージョンは24になるハズですが大丈夫でしょうか?
    試しにAndroidManifest.xmlの記述を
    android:targetSdkVersion="24" android:minSdkVersion="24"
    としてみたらいかがでしょうか?
    また、APIレベル24のSDKがインストールされているかもあわせて確認してみてください。

    キャンセル

  • 2018/02/02 22:38

    何度もありがとうございます!
    試してみます。

    キャンセル

  • 2018/02/02 22:58 編集

    <uses-sdk android:targetSdkVersion="24" android:minSdkVersion="24" />

    と、修正してデバッグすると

    「アプリケーションはブレークモードになっています」
    「お使いのアプリはブレーク状態になりましたが、すべてのスレッドが外部コード (通常はシステム コードまたはフレームワーク コード) を実行していたため、表示されるコードはありません。」
    「ハンドルされていない例外」
    「Unhandled Exception:

    Java.Lang.RuntimeException: <Timeout exceeded getting exception details>」
    となり、F11を押すとデバッグ終了します。

    キャンセル

  • 2018/02/02 23:01

    実機は HUAWEI P9 Lite を初期化。
    その後、デフォルトアプリを最新にしたものです。

    キャンセル

  • 2018/02/02 23:53

    <uses-sdk android:targetSdkVersion="21" android:minSdkVersion="21" />
    (エミュレータが遅いので21)にして、エミュレータで動かしましたが、
    エラー内容・動作ともに同じでした。
    VisualStudio側に問題がありそうです。。。

    キャンセル

  • 2018/02/03 17:17

    ビルドしたら警告がでており、

    The $(TargetFrameworkVersion) for Xamarin.Forms.Maps.Android.dll (vv6.0) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj


    The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.dll (vv6.0) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \\NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj


    The $(TargetFrameworkVersion) for NControl.Droid.dll (vv7.1) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \\NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj

    The $(TargetFrameworkVersion) for NGraphics.Android.dll (vv6.0) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \\NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj

    The $(TargetFrameworkVersion) for FormsViewGroup.dll (vv6.0) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \\NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj

    The $(TargetFrameworkVersion) for Xamarin.Forms.Platform.Android.dll (vv6.0) is greater than the $(TargetFrameworkVersion) for your project (v5.1). You need to increase the $(TargetFrameworkVersion) for your project. NControlDemo.Droid \\NControl-develop\NControlDemo\NControlDemo.Droid\NControlDemo.Droid.csproj 」
    とバージョンの差による問題のようですが、古いバージョンに設定する方法を教えていただけないでしょうか。
    よろしくお願いします。

    キャンセル

  • 2018/02/05 13:24

    Android SDK はどのバージョンがインストールされてますか?
    VisualStudioのツール⇒Android⇒Android SDK Manager を選択すると一覧が出てくるので、そこの
    Android X.X がどれが選択されているのでしょうか?
    そのバージョンの「Android SDK Platform XX」だけ入っていれば大丈夫です。
    今回ですと
    ・Android SDK Platform 27
    ・Android 7.0 - Nougat
      ⇒Android SDK Platform 24
    が入っていれば大丈夫だと思いますが。。

    キャンセル

  • 2018/02/05 20:10 編集

    ・Android SDK Platform 27
    ・Android 7.0 - Nougat
      ⇒Android SDK Platform 24
    これが入っています。(他にもいろいろ入ってます。)

    Android SDK Manager 自体が更新(GUIが違う)されているようなので、
    念のためリビルドして再確認しました。

    状況が少し改善して、実機の上5分の1くらいに赤〇の一部と青■の一部と"NControlDemo"と表示。
    実機の下5分の1くらいに"‣"(右向き三角)、"+"、">_"、"リストの記号のようなもの"が表示されます。
    それと画面をスワイプさせると、左下に"google"、右下に”+”、”-”が表示されます。。。

    キャンセル

  • 2018/02/05 22:53

    それ、おそらく正常に起動できたということではないでしょうか…?

    キャンセル

  • 2018/02/05 23:05

    スクリーンショットです。
    https://drive.google.com/file/d/1uliPEhvJsk6dGnYvcK-zay5Ovwew_GM4/view?usp=sharing
    "‣"(右向き三角)、"+"など押しても無反応ですが。。。

    スワイプ後のスクリーンショット
    https://drive.google.com/file/d/1qY3stV3TDSBCh6tTAHvNZGUslQh8covW/view?usp=sharing

    ここまで助けていただいても、この結果…
    申し訳ない。m(__)m

    キャンセル

  • 2018/02/09 15:51

    遅くなりました。
    これはこういうサンプルアプリなんですね。
    NControlDemo.FormsAppが共通プロジェクトとして実行されます。
    NControlDemo.FormsApp/Views/MainView.cs
    にこの画面を表示する処理が書いてあります。

    地図が表示されないのはAndroidManifest.xmlにAPI Keyが記載されていないからです。

    そもそもやりたいことは
    >やりたいことは、角度を指定して円を描きたいのですが、
    ということですが、
    https://qiita.com/wraith13/items/2ed51964d463c5dddee7#%E7%B7%9A%E7%94%BB
    この辺とかは参考にならないでしょうか?

    キャンセル

  • 2018/02/12 20:47 編集

    返事が遅くなり、申し訳ありません。
    地図についてですが、Google Console の 認証情報 のAPI Key を設定しているのですが、なぜか表示されません。。。

    拙い質問・説明にも関わらず、丁寧に教えてくださり、感謝の言葉の申し上げようもございません。本当にありがとうございます。

    教えて頂いたサイトを参考にしていこうと思いますが、最後に一点教えて頂けましたら助かります。

    円の弧をタップ&ドラッグして動的に扇型を描くには、SKPointで位置情報を取得しながら描く。と、いうイメージでいいでしょうか?

    キャンセル

  • 2018/02/14 18:17

    おそらく弧をグリグリ動かすのは結構大変だと思います。座標の計算やタッチ操作の検知等々…

    よくあるヤツですが、以下にそれっぽいサンプルを作ってみました。
    Slider を使用して円の描画をしています。ご参考までにどうぞ。
    https://github.com/shunsuke-kawai/SkiaSharpSample

    キャンセル

  • 2018/02/14 19:56

    サンプルまで作ってくださり、本当にありがとうございます。
    早速確認しようとしたのですが、
    「エラー 指定されたパス、ファイル名、またはその両方が長すぎます。完全限定型名は 260 文字未満で指定し、ディレクトリ名は 248 未満で指定してください。 SkiaSharpSample.Android

    となり、クリーンもビルドも通りません。

    ローカル コンピューター ポリシー -> コンピューターの構成 -> 管理用テンプレート -> システム -> ファイルシステム -> Win32 の長いパスを有効にしたり、
    最新の.NET Framework 4.6.2をインストール、最新のJDK 1.8.0_161、JAVA_HOME のpath 設定済みですが、上記のとおりです。
    上記以外の環境に問題があるのでしょうか?
    (Windows 10 Pro、AMD A10-7850K です。)

    キャンセル

  • 2018/02/14 21:14

    おそらくWindowsのパス長設定に引っかかっていると思われます。
    試しに作業フォルダをC\:直下とかに設定したらどうなるでしょうか?

    参考:http://blog.okazuki.jp/entry/2017/09/08/175913

    キャンセル

  • 2018/02/14 22:08

    動きました!!!
    本当に本当にありがとうございました。
    一人だったら途中であきらめていたと思います。
    何度も何度も親切に丁寧に答えてくださり、サンプルまで作ってくださり、ありがとうございました。m(__)m

    キャンセル

  • 2018/02/15 13:08

    よかったです!おめでとうございます!
    またなにかあったら別質問としてあげてくださいー。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.53%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る

  • C#

    7076questions

    C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

  • Xamarin

    496questions

    Xamarin(ザマリン)は、iPhoneなどのiOSやAndroidで動作し、C# 言語を用いてアプリを開発できるクロスプラットフォーム開発環境です。Xamarin Studioと C# 言語を用いて、 iOS と Android の両方の開発を行うことができます。