Android OpenCV 〜環境構築エラー: The minSdk version should not be declared〜

AndroidでOpenCVを使うときのエラー

下のようなメッセージが出力されてビルドができない状態でした。

ERROR: The minSdk version should not be declared in the android manifest file. You can move the version from the manifest to the defaultConfig in the build.gradle file.
Remove minSdkVersion and sync project
Affected Modules: openCVLibrary2411

解決方法として参考にしたサイトは以下です。

結論

エラーメッセージの通りに修正してやれば直しました。

実施したこと

  1. インポートしたopencvライブラリのプロジェクトのbuild.gradleファイルにある以下のコードをコメントアウト
    defaultConfig {
    //        minSdkVersion 4 // 8
        targetSdkVersion 26 // 8
    }
  2. 「The minSdk version should not be declared in the android manifest file」が出力されたので、OpenCVライブラリのプロジェクトにあるAndroidManifest.xmlを修正
    <修正前>

    <uses-sdk android:minSdkVersion="26" />

<修正後>

<!--- <uses-sdk android:minSdkVersion="26" /> --->

これで、ビルドエラーの解消ができました。

でわでわ。。。

関連記事

Bugfix AngularJS ~Error: [$templateRequest:tpload]~

Error: [$templateRequest:tpload]

AngularJSで下のように、モーダル表示を行おうとした時に出ました。

/** ディレクティブ追加 */
app.directive('modal', function () {
    return {
      templateUrl: "./myModalContent.html",
      restrict: 'E',
      transclude: true,
      replace:true,
      scope:true
    };
  });

参考にしたサイトでは、下のような文言がありました(Google翻訳)

このエラーは、$templateRequestURLからテンプレートをフェッチしようとしたときに要求が失敗した場合に発生します。
テンプレートURLは、ルート定義のディレクティブ/コンポーネント定義、のインスタンスngInclude、のインスタンス、ngMessagesIncludeまたはテンプレート化された$routeルートで定義されている場合があります。
このエラーを解決するには、テンプレートのURLのスペルが正しいこと、および絶対URLが正しく解決されることを確認してください。Chromeデベロッパーツールは また、要求が失敗した理由を判断するのに役立つかもしれません。
を使用$templateCacheしてテンプレートをプリロードする場合は、キャッシュにテンプレートが入力されていることを確認してください。

早い話が、パスが間違っているということでした。

関連ページ

  1. JS GoogleMaps API 〜オリジナル・データマップを作ろう〜
  2. 吹き出しにYoubetubeを埋め込む
  3. Ajax + XmlHttpRequest〜画像送信からDB登録して表示〜
  4. JS XmlHttpRequest 〜JSでの同期/非同期通信〜
  5. JS Google Maps API 〜GeoLocation 現在位置の取得〜
  6. AngularJS + PHP 〜AngularJSの実装〜
  7. AngularJS + PHP 〜AngularJSの実装2〜
  8. WordPress プラグイン作成 〜$wpdbでのSELECT〜
  9. WordPressプラグイン作成 〜HTML挿入まで完了〜
  10. WordPress プラグイン作成 〜アンケート挿入〜
  11. MAMP 起動設定 〜WordPressのテスト環境を作る〜
  12. MAMP WordPress 〜インポート時のエラー対処〜
  13. WordPress PHPカスタム〜根本的に見た目を変える2〜

<ins class="adsbygoogle"
style="display:block"
data-ad-format="fluid"
data-ad-layout-key="-6t+ed+2i-1n-4w"
data-ad-client="ca-pub-7367785927150581"
data-ad-slot="3284986237">

Bugfix php stdClass 〜get all properties in stdClass〜

phpでのstdClassから全てのプロパティを取得する方法でつまづいたので記載して起きます。

JSONの取得時にエラー

Cannot use object of type stdClass as arrayと言うエラーが出ました。

原因はstdClassはarrayではありません。。。みたいな意味でした。
つまり、object[''propertyName'];のようなデータアクセスはできないと言う意味です。

stdClassからArray

まずは送信したJSONはphpでは「stdClass」と言うものでした。
具体的には下のようなコードでJSONを取得したときに「stdClass」として取得されます。

$json = file_get_contents('php://input');
$data = json_decode($json);

具体的に「$data」がstdClassになります。

そして取得したデータを配列で中身を取り出したい場合配下のように行います。

// 配列を取得
$array = get_object_vars($data);
// 配列のキーを取得
$keys = array_keys($array);

配列の番号で取得しようとしたらエラーが出たので上のようにやりました。

駄菓子菓子

上のものもうまくSQLを組み立てられなかったので最終的には下のようなコードになりました。

$array = get_object_vars($data);
$keys = array('question', 'ans0', 'ans1', 'ans2', 'ans3', 'ans4', 'hrml_class', 'html_style');

for($count = 0; $count < 8; $count++) {
    if (array_key_exists($keys[$count], $array)) {
        $dd = $array[$keys[$count]];
    } else {
        $dd = "";
    }
    if ($dd != "") {
        $insertSQL .= "'" . $dd . "',";
    } else {
        $insertSQL .= "'',";
    }
}
// $insertSQL .= "'" . $vals['htmlClass'] . "','" . $vals['htmlStyle'] . "'";
$insertSQL = substr($insertSQL, 0, -1);
$insertSQL .= ");";

でわでわ。。。



関連ページ

  1. WordPress プラグイン作成〜DBを使用する〜
  2. PHP PDO 〜MySQLにアクセスする〜
  3. PHP Ajax 〜DBに登録したデータを受信する〜
  4. Google Maps API PHP連携 〜マップ情報をDBに登録する〜
  5. PHP Image File 〜iPhoneやAndroidでの画像送受信の問題〜
  6. AngularJS Routing 〜PHPをWeb APIにする〜
  7. WordPress PHPカスタム〜根本的に見た目を変える〜
  8. WordPress PHPカスタム〜根本的に見た目を変える2〜
  9. Eclipse PHPプラグイン 〜ElipseでWordPress環境を構築〜
  10. WordPress テスト実装 〜heade-test.phpを表示〜
  11. AngularJS + PHP 〜WordPressと連携する〜
  12. AngularJS + PHP 〜AngularJSの実装〜
  13. AngularJS + PHP 〜AngularJSの実装2〜
  14. WordPress 処理解析 ~index.phpを眺める~
  15. WordPress Plugin NewStatPress ~アクセス解析プラグインAPIを使う~
  16. WordPress 処理解析 ~ログイン処理を調べる~
  17. WordPressカスタム〜アンケートボタンを追加する(設計)〜
  18. WordPressカスタム〜プラグインの作成〜
  19. WordPressカスタム〜ダッシュボードのプラグイン画面作成〜
  20. WordPressカスタム〜ダッシュボードのプラグイン画面作成2〜
  21. WordPressカスタム〜ダッシュボードのプラグイン画面作成3〜
  22. WordPress プラグイン作成〜アンケート作成プラグインを作る〜

JS

関連ページ

  1. JS GoogleMaps API 〜オリジナル・データマップを作ろう〜
  2. 吹き出しにYoubetubeを埋め込む
  3. Ajax + XmlHttpRequest〜画像送信からDB登録して表示〜
  4. JS XmlHttpRequest 〜JSでの同期/非同期通信〜
  5. JS Google Maps API 〜GeoLocation 現在位置の取得〜
  6. AngularJS + PHP 〜AngularJSの実装〜
  7. AngularJS + PHP 〜AngularJSの実装2〜
  8. WordPress プラグイン作成 〜$wpdbでのSELECT〜
  9. WordPressプラグイン作成 〜HTML挿入まで完了〜
  10. WordPress プラグイン作成 〜アンケート挿入〜
  11. MAMP 起動設定 〜WordPressのテスト環境を作る〜
  12. MAMP WordPress 〜インポート時のエラー対処〜
  13. WordPress PHPカスタム〜根本的に見た目を変える2〜

Bugfix PHP 〜WordPress plugin $wpdb nullになる〜

$wpdbがnullになる

この現象が起きたのは下のようなコードで実装した時です。

<?php
global $wpdb;

function XXXX() {
       // テーブルを作成する(ヒアドキュメントはタブが入流ので)
$sql = <<<EOM
create table if not exists questionary(
question_id int not null PRIMARY KEY AUTO_INCREMENT,
question varchar(60),
answer1 varchar(60),
answer2 varchar(60),
answer3 varchar(60),
answer4 varchar(60),
answer5 varchar(60),
hrml_class varchar(15),
html_style varchar(15),
click_count bigint);
EOM;
    $wpdb->query( $sql );
}

これで、SQLを実行する行 $wpdb->query( $sql );で落ちてしまいまいした、
「なんでNullになるだ?」と調査をしていても変数宣言をすれば良いと言う答えしか返ってこなく。。。

解決

プラグインでの実装なので、登録したイベントに対して動くfunctionの中で宣言しないといけませんでした。参考にしたのはCodexのページです
一発で解決しました。

でわでわ。。。


関連ページ

  1. WordPress プラグイン作成〜DBを使用する〜
  2. PHP PDO 〜MySQLにアクセスする〜
  3. PHP Ajax 〜DBに登録したデータを受信する〜
  4. Google Maps API PHP連携 〜マップ情報をDBに登録する〜
  5. PHP Image File 〜iPhoneやAndroidでの画像送受信の問題〜
  6. AngularJS Routing 〜PHPをWeb APIにする〜
  7. WordPress PHPカスタム〜根本的に見た目を変える〜
  8. WordPress PHPカスタム〜根本的に見た目を変える2〜
  9. Eclipse PHPプラグイン 〜ElipseでWordPress環境を構築〜
  10. WordPress テスト実装 〜heade-test.phpを表示〜
  11. AngularJS + PHP 〜WordPressと連携する〜
  12. AngularJS + PHP 〜AngularJSの実装〜
  13. AngularJS + PHP 〜AngularJSの実装2〜
  14. WordPress 処理解析 ~index.phpを眺める~
  15. WordPress Plugin NewStatPress ~アクセス解析プラグインAPIを使う~
  16. WordPress 処理解析 ~ログイン処理を調べる~
  17. WordPressカスタム〜アンケートボタンを追加する(設計)〜
  18. WordPressカスタム〜プラグインの作成〜
  19. WordPressカスタム〜ダッシュボードのプラグイン画面作成〜
  20. WordPressカスタム〜ダッシュボードのプラグイン画面作成2〜
  21. WordPressカスタム〜ダッシュボードのプラグイン画面作成3〜
  22. WordPress プラグイン作成〜アンケート作成プラグインを作る〜


JS

関連ページ

  1. JS GoogleMaps API 〜オリジナル・データマップを作ろう〜
  2. 吹き出しにYoubetubeを埋め込む
  3. Ajax + XmlHttpRequest〜画像送信からDB登録して表示〜
  4. JS XmlHttpRequest 〜JSでの同期/非同期通信〜
  5. JS Google Maps API 〜GeoLocation 現在位置の取得〜
  6. AngularJS + PHP 〜AngularJSの実装〜
  7. AngularJS + PHP 〜AngularJSの実装2〜
  8. WordPress プラグイン作成 〜$wpdbでのSELECT〜
  9. WordPressプラグイン作成 〜HTML挿入まで完了〜
  10. WordPress プラグイン作成 〜アンケート挿入〜
  11. MAMP 起動設定 〜WordPressのテスト環境を作る〜
  12. MAMP WordPress 〜インポート時のエラー対処〜
  13. WordPress PHPカスタム〜根本的に見た目を変える2〜

Bugfix PHP JSON データ通信 〜JSONが取得できない〜

JSからPHPにJSONでリクエストが送れない

WordPressプラグインの作成中に以下のようなエラーで手こずりましたので、解決方法を記載します。

JS(XmlHttpRequest)でJSONが送れない

初めは下のようなコードでデータの送信を試みました。

// 下のメソッドは次のように書いても良い(JSの場合) => createXHR("POST", stateChangeMethod);
    let xhr = createXHR(stateChangeMethod, null, null);
// JSONで送信する
xhr.open("POST", 'http://xxxx.com/xxx.php');
xhr.send(JSON.stringify(data));

// 状態変化時のメソッド(コールバック関数と呼ばれる)
function stateChangeMethod(res) {
    let READYSTATE_COMPLETED = 4;
    let HTTP_STATUS_OK = 200;
    if (res.target.readyState == READYSTATE_COMPLETED) {
        if(res.target.status == HTTP_STATUS_OK) {
            console.log("レスポンス取得: " + res.target.response);
        } else {
            alert("エラー: " + res.target.response);
        }
    }
}

この処理は、XMLHttpwRequestを作成して指定のURLに下のJSONを送信するものです。
let data = {question: "aaa", answer: "bbb"};

そして、受診する側(PHP)は下のようなコードで受診しました。

// JSONリクエストを受け取る
$data = $_POST['question'];
echo $data;

しかし、下のようなエラーが出ました。

レスポンス取得: <br />
<b>Notice</b>:  Undefined index: question in <b>/Users/takk/WP_DEV/wp/wp-content/plugins/CustomQuestionary/InsertQuestionary.php</b> on line <b>4</b><br />

ダメだったところ

ズバリ、PHPでJSONを取得するときは$_POSTとかが使えない。。。と言うところです。
なので、下のようなコードでJSONを取得します。

// JSONリクエストを受け取る
$json = file_get_contents('php://input');
$data = json_decode($json);
$question = $data->question;

これで、なんとか・・・

こんな感じで解消できました。

でわでわ。。。



関連ページ

  1. WordPress プラグイン作成〜DBを使用する〜
  2. PHP PDO 〜MySQLにアクセスする〜
  3. PHP Ajax 〜DBに登録したデータを受信する〜
  4. Google Maps API PHP連携 〜マップ情報をDBに登録する〜
  5. PHP Image File 〜iPhoneやAndroidでの画像送受信の問題〜
  6. AngularJS Routing 〜PHPをWeb APIにする〜
  7. WordPress PHPカスタム〜根本的に見た目を変える〜
  8. WordPress PHPカスタム〜根本的に見た目を変える2〜
  9. Eclipse PHPプラグイン 〜ElipseでWordPress環境を構築〜
  10. WordPress テスト実装 〜heade-test.phpを表示〜
  11. AngularJS + PHP 〜WordPressと連携する〜
  12. AngularJS + PHP 〜AngularJSの実装〜
  13. AngularJS + PHP 〜AngularJSの実装2〜
  14. WordPress 処理解析 ~index.phpを眺める~
  15. WordPress Plugin NewStatPress ~アクセス解析プラグインAPIを使う~
  16. WordPress 処理解析 ~ログイン処理を調べる~
  17. WordPressカスタム〜アンケートボタンを追加する(設計)〜
  18. WordPressカスタム〜プラグインの作成〜
  19. WordPressカスタム〜ダッシュボードのプラグイン画面作成〜
  20. WordPressカスタム〜ダッシュボードのプラグイン画面作成2〜
  21. WordPressカスタム〜ダッシュボードのプラグイン画面作成3〜
  22. WordPress プラグイン作成〜アンケート作成プラグインを作る〜

JS

関連ページ

  1. JS GoogleMaps API 〜オリジナル・データマップを作ろう〜
  2. 吹き出しにYoubetubeを埋め込む
  3. Ajax + XmlHttpRequest〜画像送信からDB登録して表示〜
  4. JS XmlHttpRequest 〜JSでの同期/非同期通信〜
  5. JS Google Maps API 〜GeoLocation 現在位置の取得〜
  6. AngularJS + PHP 〜AngularJSの実装〜
  7. AngularJS + PHP 〜AngularJSの実装2〜
  8. WordPress プラグイン作成 〜$wpdbでのSELECT〜
  9. WordPressプラグイン作成 〜HTML挿入まで完了〜
  10. WordPress プラグイン作成 〜アンケート挿入〜
  11. MAMP 起動設定 〜WordPressのテスト環境を作る〜
  12. MAMP WordPress 〜インポート時のエラー対処〜
  13. WordPress PHPカスタム〜根本的に見た目を変える2〜