小编pka*_*pka的帖子

Android gradle复制本机共享库

我的问题类似于这里提出的问题:

如何在多项目Android Build中排除重复的C共享库(.so)?

在我的项目中,我有一个共享库,它有一些本机代码MySharedLib.我有一个TestDuplicateSharedLibApp依赖的应用程序,MySharedLib也有本机代码.

作为gradle构建的一部分,我ndk-build通过设置禁用自动呼叫jni.srcDirs =[].我明确地调用了ndk-build命令.

作为MySharedLib构建过程的一部分,libMySharedLib.so生成并打包到MySharedLib.aar.

TestDuplicateSharedLibApp取决于MySharedLib.作为ndk-build的一部分,libTestDuplicateSharedLibApp.so并被libMySharedLib.so复制到TestDuplicateSharedLibApp/libs目录中.

因为我需要在最终的apk中打包共享库,所以我jniLibs.srcDirs=['libs']在build.gradle中.

当最终的apk被打包时,包装因副本的副本而失败libMyShared.so,其中一个来自MySharedLib.aar和来自TestDuplicateSharedLibApp/libs.我试过pick-firstexclude打包选项,但他们没有帮助.

基本上我需要的是jniLibs.srcDirs文件的等价物.在TestDuplicateSharedLibApp我想说:只包括libTestDuplicateSharedLibApp.so.我设想这样做:jniLibs.srcDirs=[]并且,如果存在jniLibs.srcFiles选项jniLibs.srcFiles='libTestDuplicateSharedLibApp.so'

我很感激解决这个问题的见解.

android android-ndk android-studio android-gradle-plugin

7
推荐指数
0
解决办法
787
查看次数

Android上支持HDF5

如何在Android上使用HDF5软件?可以为Android平台编译本机C++库,然后使用HDF5 Java绑定调用吗?

android hdf5

6
推荐指数
1
解决办法
3011
查看次数

Android c ++字符串支持to_string,stof等

基于是否任何Android NDK编译器上gcc 4.7,支持to_string,stof和其他字符串转换函数?

在我正在使用的NDK中,我找到了函数ext/vstring.h.但功能包含在内

#if (defined(__GXX_EXPERIMENTAL_CXX0X__) && defined(_GLIBCXX_USE_C99))
Run Code Online (Sandbox Code Playgroud)

我正在启用-std=c++11旗帜.

我如何启用GXX_EXPERIMENTAL_CXX0X

c++ string android std android-ndk

5
推荐指数
1
解决办法
1087
查看次数

Android gradle:多项目构建,顶级build.gradle

我有一个多项目Android构建系统.该项目的结构如下:

Root Dir
   |
    settings.gradle
   |
    build.gradle
   | 
    Apps
      |
       app 1
         |
         build.gradle
      |
       app 2
         |
         build.gradle
    |
    Libs
      |
       lib 1
         |
         build.gradle
      |
       lib 2
         |
         build.gradle
Run Code Online (Sandbox Code Playgroud)

所有的应用程序和库都有常见的android配置.

在根级build.gradle我有以下内容:

subprojects {
   apply plugin: 'android'
   android {
      compileSdkVersion "Google Inc.:Google APIs:19"
      buildToolsVersion "20.0.0"

      defaultConfig {
         minSdkVersion 14
         targetSdkVersion 19
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

接下来我想到将以下内容添加到app 1中的build.gradle中

apply plugin: 'com.android.application'

android {
   sourceSets {
      main {
         manifest.srcFile 'AndroidManifest.xml'
         java.srcDirs = ['src']
         res.srcDirs = ['res']
      }
   }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Cannot add …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

5
推荐指数
1
解决办法
4606
查看次数