使用Android studio 定义了一个Java module,如果在module里配置provided

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Android studio 定义了一个Java module,如果在module里配置provided相关的知识,希望对你有一定的参考价值。

一直报错。provided 也报错。

Error:(4, 0) Could not find method providedCompile() for arguments [directory 'libs'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
<a href="openFile:D:\AS_workspace\PluginSDK\jr-enclosured-method-android\build.gradle">Open File</a>

参考技术A providedCompile 用在‘war’ module , java module 只能用compile。

Android如何使用so文件和Android studio中导入so

Android中使用so文件:

做一个PDF阅读的功能,找到一个开源的库,mupdf。下载的是网上编译好的so库,导入到自己项目中的时候一直报错Java.lang.UnsatisfiedLinkError: Couldn‘t load netplayerlibq: findLibrary returned null,找不到so文件中的方法。找了一个下午,终于知道了原因。

JNI中的方法的命名规范是

1) 前缀: Java_
2) 类的全限定名,用下划线进行分隔(_):com_lms_jni_JniTest
3) 方法名:getTestString 

方法命名是与包名相关的,所以在用so库的时候,将调用其中方法的类的包名改成so文件中写的包名。这是最简单的办法。当然,最好的办法当然是找到开源项目的源码交叉编译成含有我们项目包名的so文件。

参考http://blog.csdn.NET/jiabailong/article/details/7986350 

 

Android studio中导入so的两种方法:

1、将so文件放在libs目录下,然后在app的build.gradle中加入如下配置 

sourceSets {
    main {
        jniLibs.srcDirs = [libs]
    }
}

整个配置文件如下:

android {
    compileSdkVersion 23
    buildToolsVersion 19.1.0

    defaultConfig {
        applicationId "com.hehe.itlms"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0.0"
    }
    buildTypes {
        release {
            minifyEnabled true//是否混淆
            proguardFiles getDefaultProguardFile(proguard-android.txt), proguard-rules.pro
        }
    }

    sourceSets {
        main {
            jniLibs.srcDirs = [libs]
        }
    }
}

2、将所有需要使用的.so文件压缩为.zip文件(zip中的文件目录结构为: lib/armeabi/*.so)注意,一定要是这样的路径,lib不要写成libs啊!然后将这个.zip文件重命名为armeabi.jar文件(我用的是so.jar),将该jar包添加到项目的libs文件下,然后Add isLibrary。

最后的目录结构 

libs 
^---|xxx.jar 
^---|armeabi.jar 
        ^---|lib 
              ^---|armeabi 
                     ^---|xxx.so

以上是关于使用Android studio 定义了一个Java module,如果在module里配置provided的主要内容,如果未能解决你的问题,请参考以下文章

有一小部分命令,我无法编写代码(Android Studio)

android笔记——android studio环境搭建

Android Studio 2.1稳定版更新

Android Studio 2.1稳定版更新

MacOS 无法启动 android studio,需要 java 更新

Android Studio 无法在 Mac OSX (Mavericks) 上加载 JVM