【发布时间】:2017-11-20 00:52:03
【问题描述】:
在 2.3.3 上,构建运行良好,但是在升级 3.0.0 后出现此问题。有谁能帮助我吗? 原因是没有生成libSDL2.so,但是我不明白为什么SDLActivity模块在SDL2-android-studio完成构建之前就开始构建。
我认为 SDLActivity 模块在 SDL2-android-studio 模块的构建作业完成后开始构建。事实上,在 2.3.3 上,它起作用了。但是,在 3.0.0 上,它没有。也就是说,在 2.3.3 上,SDLActivity 的任务 externaNativeBuildRelease 在 SDL-android-studio 的任务完成之后开始。在 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 无源 :SDLActivity:processReleaseUnitTestJavaRes 无源 :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDLActivity:externalNativeBuildRelease 构建主arm64-v8a 忍者:错误:'D:/corelab_proj/GearToTciPlayer2/distribution/main/lib 需要'../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so' /arm64-v8a/libmain.so',缺少并且没有已知的规则来制作它 :SDLActivity:externalNativeBuildRelease 失败
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 --目标主要} 忍者:错误:'D:/corelab_proj/GearToTciPlayer2/distribution/main/lib 需要'../../../../../distribution/SDL2/lib/arm64-v8a/libSDL2.so' /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:copyReleaseLint 无源 :SDL2-android-studio:mergeReleaseShaders 最新 :SDL2-android-studio:compileReleaseShaders UP-TO-DATE :SDL2-android-studio:generateReleaseAssets UP-TO-DATE :SDL2-android-studio:mergeReleaseAssets 最新 :SDL2-android-studio:mergeReleaseProguardFiles UP-TO-DATE :SDL2-android-studio:packageReleaseRenderscript 无源 :SDL2-android-studio:compileReleaseRenderscript UP-TO-DATE :SDL2-android-studio:generateReleaseResValues UP-TO-DATE :SDL2-android-studio:generateReleaseResources UP-TO-DATE :SDL2-android-studio:packageReleaseResources UP-TO-DATE :SDL2-android-studio:processReleaseManifest UP-TO-DATE :SDL2-android-studio:generateReleaseBuildConfig UP-TO-DATE :SDL2-android-studio:processReleaseResources 最新 :SDL2-android-studio:generateReleaseSources UP-TO-DATE :SDL2-android-studio:incrementalReleaseJavaCompilationSafeguard :SDL2-android-studio:javaPreCompileRelease :SDL2-android-studio:compileReleaseJavaWithJavac :SDL2-android-studio:processReleaseJavaRes 无源 :SDL2-android-studio:transformResourcesWithMergeJavaResForRelease :SDL2-android-studio:transformClassesAndResourcesWithSyncLibJarsForRelease :SDL2-android-studio:generateJsonModelRelease :SDL2-android-studio:externalNativeBuildRelease 构建 SDL2 arm64-v8a [1/114] 构建 C 对象 CMakeFiles/SDL2.dir/D_/corelab_proj/GearToTciPlayer2/SDL2-android-studio/src/SDL_log.c.o ... [114/114] 链接 C 共享库 D:\corelab_proj\GearToTciPlayer2\dis tribution\SDL2\lib\arm64-v8a\libSDL2.so 构建 SDL2 x86 [1/114] 构建 C 对象 ... [114/114] 链接 C 共享库 D:\corelab_pr oj\GearToTciPlayer2\distribution\SDL2\lib\x86\libSDL2.so 构建 SDL2 armeabi-v7a [1/114] 构建 C 对象 CMakeFiles/SDL2.dir/D_/corelab_proj/GearToTciPlayer2/SDL2-android-studio/src/dynapi/SDL_dynapi.c.o ... [114/114] 链接 C 共享库 D:\corelab_proj\GearToTciPlayer2\distribution\SDL2\lib\armeabi-v7a\libSDL2.so :SDL2-android-studio:mergeReleaseJniLibFolders :SDL2-android-studio:transformNativeLibsWithMergeJniLibsForRelease :SDL2-android-studio:transformNativeLibsWithStripDebugSymbolForRelease :SDL2-android-studio:transformNativeLibsWithSyncJniLibsForRelease :SDL2-android-studio:bundleRelease :SDLActivity:preBuild UP-TO-DATE :SDLActivity:preReleaseBuild UP-TO-DATE :SDLActivity:checkReleaseManifest :SDLActivity:preDebugAndroidTestBuild UP-TO-DATE :SDLActivity:preDebugBuild UP-TO-DATE :SDLActivity:preDebugUnitTestBuild UP-TO-DATE :SDLActivity:preReleaseUnitTestBuild UP-TO-DATE :SDLActivity:prepareAndroidArchLifecycleRuntime100Library :SDLActivity:prepareComAndroidSupportAnimatedVectorDrawable2610Library :SDLActivity:prepareComAndroidSupportAppcompatV72610Library :SDLActivity:prepareComAndroidSupportSupportCompat2610Library :SDLActivity:prepareComAndroidSupportSupportCoreUi2610Library :SDLActivity:prepareComAndroidSupportSupportCoreUtils2610Library :SDLActivity:prepareComAndroidSupportSupportFragment2610Library :SDLActivity:prepareComAndroidSupportSupportMediaCompat2610Library :SDLActivity:prepareComAndroidSupportSupportV42610Library :SDLActivity:prepareComAndroidSupportSupportVectorDrawable2610Library :SDLActivity:prepareReleaseDependencies :SDLActivity:compileReleaseAidl 最新 :SDLActivity:compileReleaseRenderscript UP-TO-DATE :SDLActivity:generateReleaseBuildConfig UP-TO-DATE :SDLActivity:generateReleaseResValues UP-TO-DATE :SDLActivity:generateReleaseResources 最新 :SDLActivity:mergeReleaseResources 最新 :SDLActivity:processReleaseManifest 最新 :SDLActivity:processReleaseResources :SDLActivity:generateReleaseSources :SDLActivity:prepareReleaseUnitTestDependencies :SDLActivity:mockableAndroidJar UP-TO-DATE :SDLActivity:incrementalReleaseJavaCompilationSafeguard :SDLActivity:javaPreCompileRelease :SDLActivity:compileReleaseJavaWithJavac 注意:某些输入文件使用或覆盖已弃用的 API。 注意:使用 -Xlint:deprecation 重新编译以获取详细信息。
:SDLActivity:incrementalReleaseUnitTestJavaCompilationSafeguard 无源 :SDLActivity:javaPreCompileReleaseUnitTest :SDLActivity:compileReleaseUnitTestJavaWithJavac :SDLActivity:processReleaseJavaRes 无源 :SDLActivity:processReleaseUnitTestJavaRes 无源 :SDLActivity:compileReleaseUnitTestSources :SDLActivity:generateJsonModelRelease :SDLActivity:externalNativeBuildRelease [1/10] 构建 CXX 对象 CMakeFiles/main.dir/src/cpp/SDLAudioImpl.cpp.o ... [10/10] 链接CXX shar 编辑库 D:\corelab_proj\GearToTciPlayer2\dist ribution\main\lib\armeabi-v7a\libmain.so :SDLActivity:compileReleaseSources
在 1m 38s 内构建成功 133 个可操作的任务:77 个已执行,56 个最新
【问题讨论】:
-
SDL2 模块的 build.gradle 可能会有所帮助
-
我已经添加了 gradle 文件。
标签: android cmake android-ndk android-studio-3.0 gradle-dependencies