Sve*_*ges 5 android gradle android-studio
我有一个本地的lib
/ libs/armeabi文件夹名为libparser.so和一个关联的jar文件.
我更改了gradle构建文件以包含jar文件,这看起来很简单(MYNEWJAR):
dependencies {
compile files('libs/android-support-v4.jar', 'libs/MYNEWJAR.jar')
}
Run Code Online (Sandbox Code Playgroud)
但是当我运行应用程序时,我认为它无法找到本机库:
E/AndroidRuntime(22569): Caused by: java.lang.UnsatisfiedLinkError: Couldn't load parser from loader dalvik.system.PathClassLoader[dexPath=/data/app/com.hybris.mobile.history-1.apk,libraryPath=/data/app-lib/com.hybris.mobile.history-1]: findLibrary returned null
E/AndroidRuntime(22569): at java.lang.Runtime.loadLibrary(Runtime.java:365)
E/AndroidRuntime(22569): at java.lang.System.loadLibrary(System.java:535)
E/AndroidRuntime(22569): at com.senstation.android.pincast.Pincast.<clinit>(Pincast.java:1299)
E/AndroidRuntime(22569): ... 17 more
Run Code Online (Sandbox Code Playgroud)
你能帮助我直接获取构建文件,它将包含本机库吗?这似乎是在Eclipse上自动发生的,但我真的想使用android studio.
谢谢!斯文
我发现用户Assaf Gamliel的这个答案非常有用.
并做了一些改变,使它更清洁.
您不需要将.zip文件重命名为.jar,只需在build.gradle脚本上添加正常的编译文件依赖项即可.因此,您将创建一个foo.zip文件,其结构类似于:
foo.zip - >
| - /lib
| - | - /armeabi
| - | - | - *.so
| - | - /x86
| - | - | - *.so
将它放在libs文件夹中,然后使用编译文件('libs/foo.zip')将其添加到gradle :
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+' //gradle plugin update for Andoid Studio 0.2.+
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/foo.zip') //zip file should be in Module's /libs folder (not the Project's /lib)
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 16
}
}
Run Code Online (Sandbox Code Playgroud)
当gradle执行构建时,它只是解压缩您添加的文件,保留其结构.
嗯...我希望有人能提供一个清晰的示例,说明如何使第 3 方 JAR 文件可供 Android-Studio 访问,通过显示生成的“build.gradle”文件的依赖项的确切语法看起来像,在他们添加了“foobar.jar”条目之后。
你知道,比如:
=========
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile 'org.somedevs.foobar:Foobar.jar'
}
Run Code Online (Sandbox Code Playgroud)
=========
[否则,我连滚雪球的机会都无法猜测到目前为止发布的答案的真正含义。我的 INTITAL 子句包含单个“编译”行...所以我猜应该添加另一行这样的行!?!?]
编辑:是的,非常感谢,叛逆!我现在也可以使用了。[将 JAR 复制到该库后,我只需右键单击 Studio 中的“库”并选择“添加为库...”即可获得更可靠的结果,而不是“拖/放”到 Studio 中的“库”上位置,使用命令行。]
依赖项子句的正确形式如下所示:
dependencies {
compile 'com.android.support:support-v4:13.0.+'
compile files ('libs/Foobar.jar')
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
11774 次 |
最近记录: |