2

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 が最新

4

1 に答える 1