android 编译,gradle

unable to find method AndroidJavaCompile.setDependencyCacheDir

此时怀疑有可能是Gradle版本问题,查看该程序的Gradle版本为:

 

classpath 'com.android.tools.build:gradle:2.1.3'

查看本机发现并不包含此版本的Gradle,因此将其修改为本机已经下载的Gradle版本:

classpath 'com.android.tools.build:gradle:2.3.2'

关于使用android studio时的一些错误整理 good
设置jcenter的地方

dqxu:经测试,能自动下载下来一些东西

在Android平台上加载本地库的危险性

 

安卓Application.mk文件的属性说明和基本写法

说一下Application.mk

  1. APP_PLATFORM = android-8  
  2. APP_ABI := armeabi-v7a  
  3. APP_STL := stlport_static  
  4. APP_OPTIM := debug  

关于android NDK开发中application.mk文件的疑惑 

Android NDK中对STL的两种支持gnustl和stlport有什么区别

APP_STL 
Android NDK从r5b版本开始有官方支持的STL了,有一个crystax版本早已经支持。官方的支持有两个版本一个是gnu的,一个是stlport。如果你需要在你的NDK程序中使用STL,那么需要在Application.mk文件中添加一个选项,就是APP_STL := stlport_static。 其中APP_STL的取值有以下四种: system -- 系统默认的最小支持的C++运行时库 stlport_static -- 以静态链接的方式使用stlport版本的STL stlport_shared -- 以动态链接的方式使用stlport版本的STL gnustl_static -- 以静态链接的方式使用gnu版本的STL如果你和我一样并没有使用Android.mk和Application.mk,而是使用Code::Blocks或者Visual studio 2010,那么在配置环境时,如果需要STL的支持,那么就需要注意自己要指定stl的包含路径。链接就根据需要自己链接不同的版本。请注意,stlport有静态链接和动态链接两种方式,而gnu的仅有静态链接方法。另外一个需要注意的就是官方提供的这个stlport版本不支持RTTI和异常,换言之,如果你使用了stlport版本的STL,则不能使用-fexceptions和-frtti这两个编译选项。

Java.lang.UnsatisfiedLinkError: couldn't find "libstlport_shared.so

 

    maven {
        url "https://s3.amazonaws.com/repo.commonsware.com"
    }
}
dqxu:找不到文件

Write below line into dependencies {} block.

compile 'com.commonsware.cwac:sqlcipher-for-android:3.3.1'
 

Android NDK中C++ STL库动态和静态链接

 

Android Crash: couldn't find "xxx.so" 原因

其实应该就是jniLibs文件夹下面的so库加载出错了,由于项目比较宽泛,jniLibs只有armeabi这样一个文件夹,并没有armeabi-v7a,arm64-v8a, x86, x86_64, mips, mips64这几个文件夹,因为所有的x86/x86_64/armeabi-v7a/arm64-v8a设备都支持armeabi架构的.so文件,所以理论上只需要在armeabi文件夹中放置所有的.so文件就可以了。

在一个设备上安装应用后,只有该设备支持的CPU架构对应的文件夹中的.so文件才会被安装和加载。例如,在arm64设备上,jniLibs/arm64-v8a/目录中如果存在.so文件的话,就会被安装,如果不存在.so文件的花,就会选择armeabi-v7a中的.so文件,如果该文件夹下也不存在的话,就会选择默认的.so文件,也就是armeabi文件夹下的.so文件。

知道原因了也就知道怎么解决了:

  1. 要么在每个文件夹下都编译对应CPU架构的.so文件(不能简单的把armeabi目录中的文件拷贝到对应的文件夹中,否则会出现java.lang.UnsatisfiedLinkError: dlopen failed: "libxxx.so" is 32-bit instead of 64-bit的异常);
  2. 上面的做法比较痛苦,不同的CPU都要编译一遍,如果这个库没有开源也没有对其他平台做支持的话,那就只能呵呵了,所以建议采用如下做法:
    a) 在项目中添加gradle.properties文件,写入:
    android.useDeprecatedNdk=true
    b) 在build.gradle中加入如下代码:
    defaultConfig {
       ndk {
           // 加了其他的文件夹(比如 armeabi-v7a,x86等)可能会出问题
           abiFilters "armeabi"  
       }
    }

dalvik.system.PathClassLoader[DexPathList[[zip file

解决办法:

将jinLibs或者libs下的arm64-v8a,arm-64等删除,留下armeabi和armeabi_v7a

ndk { 
abiFilters “armeabi”, “armeabi-v7a” 
}

如下加入: 
defaultConfig { 
applicationId “com..” 
minSdkVersion 16 
targetSdkVersion 22 
versionCode 1 
versionName “1.0” 
multiDexEnabled true 
ndk { 
abiFilters “armeabi”, “armeabi-v7a” 


加入后 如果出现

NDK integration is deprecated in the current plugin. Consider trying the new experimental plugin.

则在项目根目录的gradle.properties文件中添加:

android.useDeprecatedNdk=true 
就行

 

 

Plugin is too old,please update to a more recent version, or set ANDROID_DAILY_OVERRIDE environment

访问 https://jcenter.bintray.com/com/android/tools/build/gradle/ 查看最新的版本号

Plugin is too old, please update to a more recent version, or set ANDROID_DAILY_OVERRIDE

在我的电脑-->高级设置--->环境变量--->系统变量新建变量
ANDROID_DAILY_OVERRIDE

bcad82779eeae871fd8ac883cfc424c96752ef64

 

 

如何使用Android Studio把自己的Android library分享到jCenter和Maven Central

 

在Android Studio中添加jcenter远程库

repositories {
mavenCentral()
// jcenter()
}

Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法

good 

下载地址:
https://jcenter.bintray.com/com/android/tools/build/gradle-core/2.4.0-alpha7/

替换地址:

D:\android-studio-ide\gradle\m2repository\com\android\tools\build\gradle-core\2.4.0-alpha7
D:\android-studio-ide\gradle\m2repository\com\android\tools\build\gradle\2.4.0-alpha7
D:\android-studio-ide\gradle\m2repository\com\android\tools\build\builder\2.4.0-alpha7
D:\android-studio-ide\gradle\m2repository\com\android\tools\lint\lint\25.4.0-alpha7
D:\android-studio-ide\gradle\m2repository\com\android\tools\external\com-intellij\uast\171.3780.107
D:\android-studio-ide\gradle\m2repository\com\android\tools\build\gradle-api\2.4.0-alpha7

 

 

 

 

 

 

posted @ 2017-09-08 16:52  米粥米  阅读(228)  评论(0编辑  收藏  举报