zoukankan      html  css  js  c++  java
  • Android Studio相关笔记

    1.build.gradle配置

    http://blog.csdn.net/zwx_lucky/article/details/52263395

    2.ApplicationId(App/build.gradle)和packageName(AndroidManifest/package)的区别

    总结来说,packageName影响的是代码中的包名路径,ApplicationId影响的是App的唯一标示,这样可以在保持代码不变的情况下,发布多个不同版本的应用(譬如free和pro)

    http://blog.csdn.net/maosidiaoxian/article/details/41719357

    3.在Project模式下可以显示所有的项目,但是在android模式下无法显示app

    在setting.gradle里面直接添加include ':app',会报错,

    Error: Configuration with name 'default' not found

    通过Project Stucture界面将app的项目添加进去,报错说:app项目已经存在

    ....最终发现,手动添加的code-push的路径写错了

    project(':react-native-code-push').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-code-push/android/app')  

    4.一直引用的是React Native 0.19.1版本,然后某些库找不到类

    https://github.com/marcshilling/react-native-image-picker/issues/311

    一定要将android/build.gradle中的

    url "$projectDir/../../node_modules/react-native/android"
    改为
    url "$rootDir/../node_modules/react-native/android"

     不知道为什么,但绝对是个大坑

    5.添加jar包和so文件

    直接在app/libs放入所有的jar和so文件

    app/build.gradle里面的第一句,默认是自动生成的

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        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:23.4.0'
        testCompile 'junit:junit:4.12'
    }

    然后在app/build.gralde的android子节点添加

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

    6.INSTALL_FAILED_NO_MATCHING_ABIS

    INSTALL_FAILED_NO_MATCHING_ABIS is when you are trying to install an app that has native libraries and it doesn't have a native library for your cpu architecture. For example if you compiled an app for armv7 and are trying to install it on an emulator that uses the Intel architecture instead it will not work.

    该问题主要发生在模拟器调试的时候,因为引入的so文件没有模拟器cpu对应的版本

    7.Duplicate files copied in APK META-INF/LICENSE.txt

    dependencies {
        compile 'com.android.support:support-v4:+'
        compile files('libs/apache-mime4j-0.6.jar')
        compile files('libs/httpmime-4.0.jar')
    }
    
    android {
        compileSdkVersion 19
        buildToolsVersion "19.0.1"
    
        defaultConfig {
            minSdkVersion 7
            targetSdkVersion 10
            versionCode 1
            versionName "1.0"
        }
        buildTypes {
            release {
                runProguard false
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-    rules.txt'
        }
    
    
        packagingOptions {
            exclude 'META-INF/DEPENDENCIES.txt'
            exclude 'META-INF/LICENSE.txt'
            exclude 'META-INF/NOTICE.txt'
            exclude 'META-INF/NOTICE'
            exclude 'META-INF/LICENSE'
            exclude 'META-INF/DEPENDENCIES'
            exclude 'META-INF/notice.txt'
            exclude 'META-INF/license.txt'
            exclude 'META-INF/dependencies.txt'
            exclude 'META-INF/LGPL2.1'
        }
    }

    8.finished with non-zero exit value 3

    When your Android project contains too many class, Android Studio will throw non-zero exit value 3during dex apk period.

    Error:org.gradle.process.internal.ExecException: Process 'command 'C:Program FilesJavajdk1.7.0_67injava.exe'' finished with non-zero exit value 3

    方法:

    dexOptions {
        javaMaxHeapSize "4g"
    }

     9.MultiDex

    场景:将ArcGIS的库放入项目中的时候,出现了java.lang.NoClassDefFoundError的问题,找原因,发现错误对应的文件在第二个dex中,最终发现是设置了multiDexEnabled true,但是其他的地方未配置好

    MultiDex配置教程:http://www.cnblogs.com/wingyip/p/4496028.html

    10.修改本项目名 包名

    http://blog.csdn.net/hangeqq685042/article/details/48626581

    11.adb devices能找到设备,但是react-native run-android提示找不到设备

    修改gradlew的权限,chmod 555 gradlew

    12.添加.so文件

    在android studio 中添加jar和so时,将jar文件直接拷贝到 项目目录applibs下即可,将so文件按照平台分类目录放到 项目目录appsrcmainjniLibs平台类别目录 下

    通过下面的代码,可以重新制定.so文件的存放目录(相对于项目根目录)

    sourceSet{
    
         main{
    
               jinLibs.srcDirs = ['newDir'}
    
               }
    
       }

    http://www.cnblogs.com/htsky/p/6127238.html

    13.打包的apk安装后有两个图标

    因为引用的第三方库的AndroidManifest.xml文件里面没有删除对入口Activity的设置

  • 相关阅读:
    luogu P3834 【模板】可持久化线段树 1(主席树) 查询区间 [l, r] 内的第 k 小/大值
    覆盖的面积 HDU
    Picture POJ
    Atlantis HDU
    Transformation HDU
    Tunnel Warfare HDU
    Agri-Net POJ
    Conscription POJ
    Brush (IV) LightOJ
    Throwing Dice LightOJ
  • 原文地址:https://www.cnblogs.com/yz1311/p/6072562.html
Copyright © 2011-2022 走看看