【覚書】rediscovery-of-the-wheel/FlightDemo をビルドする際の注意点 2018.11.12

https://github.com/rediscovery-of-the-wheel/FlightDemo


【1】downloadではなく、gitでクローンを作成する。
※download zipから行うときは、下記を行う。 
記(https://github.com/rediscovery-of-the-wheel/FlightDemo からの転載)===========
local.propertiesを設定
プロジェクト直下にlocal.propertiesというファイルを作成し、sdk.dirとndk.dirを正しく設定してください。

sdk.dir={Android SDKへのパス}
ndk.dir={Android NDKへのパス}
==========================================================================

【2】android studioでFlightDemo-masterを開く


【3】「Error occurred during initialization of VM
Could not reserve enough space for 2097152KB object heap」
というエラーメッセージが表示されたら、

FlightDemo-master/gradle.properties の末尾に、下記のコードを加える。
(参照;「Android StudioでビルドしたらGradleが「Could not reserve enough space for object heap」と嘆きだした時の設定箇所」
https://qiita.com/keigodasu/items/ff6360f93132246b9ce2 )
記================================
# JVM起動オプションの設定
org.gradle.jvmargs=-Xms512m -Xmx1024m
==================================


【4】「Gradle 'FlightDemo-master' project refresh failed
Error:Cause: path may not be null or empty string. path='null'」
というエラーメッセージが表示されたら、

FlightDemo-master\appの中の
「build.gradle」の90行目あたりからはじめるコードにつき、
下記のように計10行コメントアウトする。

記==============================================

signingConfigs {
aceparrot_releaseKey {
Properties properties = new Properties()
properties.load(new File(rootDir.absolutePath + "/local.properties").newDataInputStream())
//★①//File keystoreFile = file(properties.getProperty('KEYSTORE_ACE_PARROT'))
//★②//storeFile file(keystoreFile)
//★③//storePassword = properties.getProperty('STORE_PASSWORD_ACE_PARROT')
//★④//keyPassword = properties.getProperty('KEY_PASSWORD_ACEPARROT')
//★⑤//keyAlias properties.getProperty('ALIAS_ACEPARROT')
}
autoparrot_releaseKey {
Properties properties = new Properties()
properties.load(new File(rootDir.absolutePath + "/local.properties").newDataInputStream())
//★⑥//File keystoreFile = file(properties.getProperty('KEYSTORE_AUTO_PARROT'))
//★⑦storeFile file(keystoreFile)
//★⑧//storePassword = properties.getProperty('STORE_PASSWORD_AUTO_PARROT')
//★⑨//keyPassword = properties.getProperty('KEY_PASSWORD_AUTO_PARROT')
//★⑩//keyAlias properties.getProperty('ALIAS_AUTO_PARROT')
}
}
================================================


【5】「The specified Android SDK Build Tools version (25.0.0) is ignored, as it is below the minimum supported version (27.0.3) for Android Gradle Plugin 3.1.4.
Android SDK Build Tools 27.0.3 will be used.
To suppress this warning, remove "buildToolsVersion '25.0.0'" from your build.gradle file, as each version of the Android Gradle Plugin now has a default version of the build tools.
Update Build Tools version and sync project
Open File」
というエラーメッセージが表示された場合、

FlightDemo-masterの中の「build.gradle」の87行目あたり
versionBuildTool = '25'

versionBuildTool = '28'
に修正する。


【6】「All flavors must now belong to a named flavor dimension. Learn more at https://d.android.com/r/tools/flavorDimensions-missing-error-message.html 」
というエラーメッセージが表示されたら、

FlightDemo-master\appの中の
「build.gradle」の133行目あたりからのコードを
下記のように修正する。

(エラーメッセージ「All flavors must now belong to a named flavor dimension. 」の対策: Android Studio 2.3 から 3.0へMigration(主にFlavor)について
https://qiita.com/mfks17/items/718bfb21b69d062fd8bf )

記===================================
flavorDimensions "environment" //★修正点①//エラーメッセージ「All flavors must now belong to a named flavor dimension. 」の対策(1)
productFlavors {
aceparrot {
applicationId "com.serenegiant.aceparrot"
signingConfig signingConfigs.aceparrot_releaseKey
dimension "environment" //★修正点②//エラーメッセージ「All flavors must now belong to a named flavor dimension. 」の対策(2)
}
autoparrot {
applicationId "com.serenegiant.autoparrot"
signingConfig signingConfigs.autoparrot_releaseKey
dimension "environment" //★修正点③//エラーメッセージ「All flavors must now belong to a named flavor dimension. 」の対策(3)
}
}

packagingOptions {
exclude 'lib/armeabi/*.so'
exclude 'lib/arm64-v8a/*.so'
exclude 'lib/mips/**.so'
exclude 'lib/mips64/*.so'
exclude 'lib/x86_64/*.so'
}
}
======================================


【7】build APK(s) を実行してdebug-apkを作ろうとしたとき、opencv ndkcleanエラーになったら、
それは、https://github.com/rediscovery-of-the-wheel/FlightDemo
の下記「OpenCVを設定」が正しくできていないため。
記(https://github.com/rediscovery-of-the-wheel/FlightDemo からの転載)=========
OpenCVを設定
OpenCVのオフィシャルサイトからOpenCV for Android のversion 3.1または3.2をダウンロードする
ダウンロードしたzipファイルを展開する
{プロジェクト}/opencv/src/jniの下にopencv3フォルダを作成
作成したopencv3フォルダ内に、zipを展開した時にできる{OpenCV-android-sdk}/sdk/native/jni内のファイル・フォルダをフォルダごとすべてコピーする
opencv3フォルダ内に3rdpartyを作成する
作成した3rdparty内に、zipを展開した時にできる{OpenCV-android-sdk}/sdk/native/3rdparty/libs内のファイル・フォルダをフォルダごとすべてコピーする
opencv3フォルダ内にexternalLibsを作成する
作成したexternalLibs内に、{OpenCV-android-sdk}/sdk/native/libs内のファイル・フォルダをフォルダごとすべてコピーする
この時点で、{プロジェクト}/opencv/src/main/jni/opencv3/OpenCV.mkの17行目と18行目が元々は次のようになっています。

OPENCV_LIBS_DIR:=$(OPENCV_THIS_DIR)/../libs/$(OPENCV_TARGET_ARCH_ABI)
OPENCV_3RDPARTY_LIBS_DIR:=$(OPENCV_THIS_DIR)/../3rdparty/libs/$(OPENCV_TARGET_ARCH_ABI)
これを次のように書き換えます。

OPENCV_LIBS_DIR:=$(OPENCV_THIS_DIR)/externalLibs/$(OPENCV_TARGET_ARCH_ABI)
OPENCV_3RDPARTY_LIBS_DIR:=$(OPENCV_THIS_DIR)/3rdparty/$(OPENCV_TARGET_ARCH_ABI)
===========================================


以上

2018年11月12日 (Nov.12, 2018)
★本ページ作成者(福間健二)は、本ページの記述に当たり、細心の注意を払っておりますが、万一、本ページ記載内容の参照・利用等により損害が発生した場合、生じた一切の損害に対して責任を負いかねます。参照・利用等は、自己責任でお願いいたします。