1、debug版本除了未签名,最重要的是会多一个restOnly属性,导致应用装不上

mac android studio自动导包快捷键 安卓studio自动导包_android

 2、安装APK提示Failure [INSTALL_FAILED_INVALID_APK: Failed to extract native libraries, res=-2]

AndroidManifest.xml配置中,一般这个属性android:extractNativeLibs为false,

如果设为 false,则原生库必须保持页面对齐状态并以未压缩的形式存储在 APK 中。

对于这个错误,一般采用配置android:extractNativeLibs为true,并配置不压缩对应的so库来处理。

1)AndroidManifest.xml配置

mac android studio自动导包快捷键 安卓studio自动导包_android_02

2)build.gradle配置

mac android studio自动导包快捷键 安卓studio自动导包_Android_03

3、android 安卓9.0(API28) 请求不到网络

1)1.允许使用http连接,Android P 限制了明文流量的网络请求

AndroidManifest.xml配置文件application节点中加入属性android:usesCleartextTraffic="true"

2)官方已经在 Android P 的启动类加载器中将其移除,如果仍然需要使用 Apache HTTP

android:name="org.apache.http.legacy"

android:required="false"/>

mac android studio自动导包快捷键 安卓studio自动导包_Android_04

4、Android7.0(API24)以上的机子默认抓不了包

在资源文件新建xml目录,新建文件 network_security_config,在AndroidManifest中application引用android:networkSecurityConfig="@xml/network_security_config"

mac android studio自动导包快捷键 安卓studio自动导包_android studio_05

network_security_config.xml文件内容

<?xml version="1.0" encoding="utf-8"?>
 <network-security-config>
     <!-- 设置允许http明文传输-->
     <base-config cleartextTrafficPermitted="true">
         <trust-anchors>
             <!-- 设置信任系统级别证书-->
             <certificates src="system" />
             <!-- 设置信任用户自定义证书,设置之后才能用fiddler之类的抓取https请求,出包最好不要设置,防止被抓包-->
             <certificates src="user" />
         </trust-anchors>
     </base-config>
 </network-security-config>

5、implementation和api区别

api起到依赖传递作用,A api B,B api C,那么A相当于间接依赖C

6、依赖第三库

完美替代

implementation fileTree(dir: 'libs', include: ['*.jar','*.aar'])

mac android studio自动导包快捷键 安卓studio自动导包_android studio_06

7、Android Studio导出aar或者jar

1)导出aar

直接makeProject编译就可以自动生成

mac android studio自动导包快捷键 安卓studio自动导包_android studio_07

2)导出jar

在需要导包的模块bulid.gradle最后面添加以下代码


//打jar包
task exportJar(type: Copy) {
    //这行表示要打包的文件的路径,根据下面的内容,其实是该路径下的classes.jar
    //这里注意下,网上很多人都说在intermediates/bundles目录下,但是比较新版本的AS该目录下intermediates/packaged-classes替换intermediates/bundles了,本人AS4.0
    from('build/intermediates/packaged-classes/debug/')
    //这行表示打包完毕后包的生成路径,也就是生成的包存在哪
    into('build/libs/')
    //看到这行,如果你对分包有了解的话,你就可以看出来这行它只是将一些类打包了
    include('classes.jar')
    //重命名为mySdk.jar
    rename ('classes.jar', 'mySdk.jar')
}
exportJar.dependsOn(deleteOldJar,build)


mac android studio自动导包快捷键 安卓studio自动导包_Android_08

notice:

如果是gradle5.0以上,classes.jar的位置不在"build/intermediates/bundles/debug/"这个下面,而是在"build/intermediates/packaged-classes/debug/"下面.所以只要修改copy的地址就可以了.

8、adb命令安装

adb install apk全路径(直接拖)

覆盖安装:

adb install -r apk全路径(直接拖)

多台设备:

adb -s 192.168.0.1:5555 install -r F:\tools\android-project\IDCard\app\build\outputs\apk\debug\app-debug.apk

列出除了系统应用的第三方应用包名:

adb shell pm list packages -3

列出所有设备型号信息:

adb devices -l

9、Android导入的import爆红,但项目可以正常编译,一般由缓存造成

清理下即可

mac android studio自动导包快捷键 安卓studio自动导包_android studio_09

mac android studio自动导包快捷键 安卓studio自动导包_android studio_10

10、Android studio 断点停不了

如图所示,改成only java即可

mac android studio自动导包快捷键 安卓studio自动导包_android studio_11

mac android studio自动导包快捷键 安卓studio自动导包_android studio_12