2.3.3 ではビルドは問題なく動作しますが、3.0.0 にアップグレードした後、この問題が発生しました。私を助けてくれる人はいますか?その理由は libSDL2.so が生成されていないためですが、SDL2-android-studio のビルドが完了する前に SDLActivity モジュールのビルドが開始される理由がわかりません。
SDLActivity モジュールは、SDL2-android-studio モジュールのビルド ジョブが完了した後にビルドを開始すると思います。実際、2.3.3 ではうまくいきました。しかし、3.0.0 ではそうではありません。つまり、2.3.3 では、SDL-android-studio のタスクが完了した後に、SDLActivity のタスク externaNativeBuildRelease が開始されます。3.0.0では、SDL-android-stduio-studioのタスクtransformClassesAndResourcesWithPrepareIntermediateJasrForDebugの後に、SDLActivityのすべてが処理されます。タスク間の依存関係を制御するには?
前もって感謝します。
SDL2 モジュールの build.gradle は以下のようなものです。
apply plugin: 'com.android.library'
android
{
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
ndk {
abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang'
}
}
}
externalNativeBuild {
cmake {
path 'android-cmake/CMakeLists.txt'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro'
}
debug {
jniDebuggable true
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
}
そして、SDLActivity の build.gradle は以下のようなものです。
apply plugin: 'com.android.library'
android {
compileSdkVersion 26
buildToolsVersion '26.0.2'
defaultConfig {
minSdkVersion 21
targetSdkVersion 21
versionCode 1
versionName "1.0"
ndk {
abiFilters 'x86', 'armeabi-v7a', 'arm64-v8a'
}
externalNativeBuild {
cmake {
arguments '-DANDROID_TOOLCHAIN=clang',
'-DANDROID_PLATFORM=android-21'
cppFlags "-std=c++11"
}
}
}
externalNativeBuild {
cmake {
path 'CMakeLists.txt'
}
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
debug {
jniDebuggable true
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
exclude group: 'com.android.support', module: 'support-annotations'
})
compile 'com.android.support:appcompat-v7:26.+'
androidTestCompile 'junit:junit:4.12'
testCompile 'junit:junit:4.12'
compile project(':SDL2-android-studio')
compile project(':libtciplayer')
compile project(':TciSdk')
compile project(':soundtouch')
}
3.0.0 では、ビルドに失敗しました
実行タスク: [:SDLActivity:generateReleaseSources, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]
...
:SDLActivity:preReleaseUnitTestBuild UP-TO-DATE :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes NO-SOURCE :SDLActivity:processReleaseUnitTestJavaRes NO-SOURCE :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDLActivity:externalNativeBuildRelease Build main arm64-v8a ninja:エラー: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so'、'D:/corelab_proj/GearToTciPlayer2/distribution/main/lib/arm64 で必要-v8a/libmain.so'、欠落しており、それを作成するための既知のルールがありません:SDLActivity:externalNativeBuildRelease FAILED
FAILURE: ビルドは例外で失敗しました。
問題: タスク ':SDLActivity:externalNativeBuildRelease' の実行に失敗しました。
ビルド コマンドが失敗しました。プロセス D:\User-expansion\Android\sdk\cmake\3.6.4111459\bin\cmake.exe を引数 {--build D:\corelab_proj\GearToTciPlayer2\SDLActivity.externalNativeBuild\cmake\release\arm64-v8a で実行中にエラーが発生しました--target main} ninja: エラー: '../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so'、'D:/corelab_proj/GearToTciPlayer2/ で必要distribution/main/lib/arm64-v8a/libmain.so'、欠落しており、それを作成するための既知のルールはありません
試してみてください: --stacktrace オプションを指定して実行し、スタック トレースを取得します。--info または --debug オプションを指定して実行し、より多くのログ出力を取得します。
https://help.gradle.orgでさらにヘルプを得る
ビルドは 13 秒で失敗しました
69 個の実行可能なタスク: 19 個が実行済み、50 個が最新のタスク
しかし、2.3.3 ではビルドは成功しています。
実行タスク: [:SDLActivity:generateReleaseSources, :SDLActivity:prepareReleaseUnitTestDependencies, :SDLActivity:mockableAndroidJar, :SDLActivity:compileReleaseUnitTestSources, :SDLActivity:compileReleaseSources]
オンデマンド構成は、準備中の機能です。setTestClassesDir(File) メソッドは廃止され、Gradle 5.0 で削除される予定です。代わりに setTestClassesDirs(FileCollection) メソッドを使用してください。getTestClassesDir() メソッドは廃止され、Gradle 5.0 で削除される予定です。代わりに getTestClassesDirs() メソッドを使用してください。ConfigurableReport.setDestination(Object) メソッドは廃止され、Gradle 5.0 で削除される予定です。代わりに ConfigurableReport.setDestination(File) メソッドを使用してください。:SDL2-android-studio:preBuild UP-TO-DATE :SDL2-android-studio:preReleaseBuild UP-TO-DATE :SDL2-android-studio:checkReleaseManifest :SDL2-android-studio:prepareReleaseDependencies :SDL2-android-studio:compileReleaseAidl UP-TO-DATE :SDL2-android-studio:compileLint UP-TO-DATE :SDL2-android-studio: SDLActivity:generateReleaseResources UP-TO-DATE :SDLActivity:mergeReleaseResources UP-TO-DATE :SDLActivity:processReleaseManifest UP-TO-DATE :SDLActivity:processReleaseResources :SDLActivity:generateReleaseSources :SDLActivity:prepareReleaseUnitTestDependencies :SDLActivity:mockableAndroidJar UP-TO-DATE :SDLActivity: incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注: 一部の入力ファイルは非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注: 一部の入力ファイルは、非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注: 一部の入力ファイルは、非推奨の API を使用またはオーバーライドします。注: 詳細については、-Xlint:deprecation を使用して再コンパイルしてください。
:SDLActivity:incrementalReleaseUnitTestJavaCompilationSafeguard NO-SOURCE :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes NO-SOURCE :SDLActivity:processReleaseUnitTestJavaRes NO-SOURCE :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDLActivity:externalNativeBuildRelease [1/10] Building CXX object CMakeFiles /main.dir/src/cpp/SDLAudioImpl.cpp.o ... [10/10] CXX共有ライブラリのリンク D:\corelab_proj\GearToTciPlayer2\dist ribution\main\lib\armeabi-v7a\libmain.so :SDLActivity :compileReleaseSources
1 分 38 秒で成功を収める 133 の実行可能なタスク: 77 が実行され、56 が最新