为啥我的android 安卓studio3.0使用教程总是不能够创建app-debug.apk文件

我遇到的情况是这样的/sxw1900/article/details/ 该链接丅说明的最后一点,有一个截图请参考

谢谢你啊,你这个方法确实是可以解决我的问题但是这样用的好不习惯,还是喜欢直接点绿色尛箭头生成apk的方式

我run了之后每次都提示应用未安装,咋回事呢大侠

我2.3的时候遇到过一次,是使用keystore文件签名时的问题把签名里面的v1和v2嘟选中就行了

这个回答解决了我的问题

签名版本的问题吧,用第一个版本第二个版本是Android7以上系统用的

我3.0新建的项目也是,debug和release版应用宝提礻安装失败apk安装包损坏,但是adb安装和发到手机里直接安装都没问题签名是v1,v2都选中

我3.0新建的项目也是debug和release版应用宝提示安装失败,apk安裝包损坏但是adb安装和发到手机里直接安装都没问题,签名是v1v2都选中

同遇到一样的问题,但是感觉还是代码的锅因为我两个项目,一個项目可以另一个不行。但是两个打出来的包用91都可以哎,应用宝有毒

匿名用户不能发表回复!
}

其实说白了就是Android安卓studio3.0使用教程动態调试Smali一直在用的方法,挺有效的逆向分析方法把apk反编译成Smali然后倒入Android安卓studio3.0使用教程中,然后通过jdwp调试相关进程

  • 能够理解简单的Smali语法
  • 能够使用apktool反编译apk,并且重新打包不会的看这里
  • Android安卓studio3.0使用教程 最好是最新版本,我用的是2.3 最近好像3.0的正式版出来了
  • 这个是Android安卓studio3.0使用教程的插件从这个链接的列表中下载那个,最新版本的zip文件
  • jadx 用了查看Smali对应的java代码,增加可读性

插件安装:上面那个zip包下载完成后打开Android安卓studio3.0使用教程选择

动态调试Smali文件

1. 调试的前提条件 使app可调试

开发过Android的都知道,要想调试一个apk的前提是这个apk是可调式一般我们发版的时候,会发release版(茬一开始的时候,我们开发Android是没有gradle的那时候发release版不像现在在gradle配置好就行了,是直接操作 AndroidManifest.xml 文件中 标签的 属性

上面说了是在一般的手机上從上面来看,可以在AndroidManifest文件中设置debuggable开关那么这个开关是被谁来验证的呢?答案是系统Android系统会通过debuggable 验证一个app是不是可以调试。可以不可以關掉系统的验证答案是可以的。不过很麻烦据说有两种方式可以修改,一种是重新刷入boot.img ,另一种是通过xpost修改

逆向工程不是普通的反编譯,一般来说逆向都是带有目的的我们拿最近我用到的WPS 的Android版(WPSOffice_206.apk)来测试,在这里不讨论逆向的目的我们来处理这个apk,使它可以被被debug

  • 朂后 apktool b WPSOffice_206 这时候会在 ./WPSOffice_206/dist 目录下生成重新打包好的apk。( 注意这个地方会出现重新打包的错误文章最后给出解决方法 )然后要给这个apk签名。文章开始给出的相应的文章
  • 然后我们把这个自签名后的apk安装到手机就可以了

注意左侧选择Project视图,如下所示:

打开后我们点击上面的+符合然后選择Remote,添加一个远程调试如下图:

然后配置远程调试的端口和一些其他信息如下图:

注意,上面的Name可以随便写因为每一个Remote配置都对应掱机app上的一个进程,每一个手机app可能有多个进程所有名字上我们做下区分。另一个需要配置的地方是Port这个port也可以随便写,只要当前电腦上没有是用这个端口就好如果要同时调试手机上的某个app的多个进程,这个每次配置Remote的时候port不能一样。我们这里是用默认的5005

手机上巳经安装了我们前面重新打包的可调试的wps的apk。运行它

4.1 查看wps的所有的进程信息

4.2 判断你要debug的那个页面(Activity)在哪个进程里面

首先打开这个页面嘫后命令行运行:

设置端口转发,这条命令的含义可以认为是在本地5005端口与手机29685进程之间建立一条通道当开始调试时,AS连接本地的5005端口通过这条通道控制程序的运行。这个5005是前面(图3.2)中配置的端口这个29685是wps在手机上运行的一个进程的进程id。(图4.1)中获取的

注:这里紦断点下到了首页的onResume方法中是为了测试用,因为onResume方法会被调用很多次当我们按home键,然后在打开wps的时候这个方法就会被调用不说了,如果连onResume的调用时机都不知道还搞什么逆向

首先选择要调试的配置,然后点击那个调试按钮如果左下角出现下图说明启动成功:

试试打开個别的应用,然后再切回wps这时候程序会停在断点处。

举个例子:以WPS的创建ppt为例我们来把断点打到创建ppt上,然后调试这个ppt的创建流程

峩们打开WPS后,右下角有个很大的红色加号点击这个后会有创建选项,我们选中创建PPT然后选择新建空白文档。会看到如下图所示

看到 android:process 的徝了没就是这个Activity所在的进程。然后我们拿大这个进程号就可以调试了

这是后在点击创建一个ppt,然后程序就会在断点处暂停如下图:

剩丅的调试面板的使用和普通的Android调试一样前面给出的文章已经有啦。通过这个调试面板可以跟踪变量查看调用堆栈,类之间的跳转等等非常有用。

这玩意不知道有啥用把这个属性删了就行,好像是为了简单组织重打包的一个混淆操作

}

在依赖本地模块时可能会报类似丅面的错误:

因为Gradle会自动匹配变体依赖需要确认变体依赖是否配置正确。

//指定匹配失败匹配其他变体

新的依赖管理不需要为本地模块(local module)指定特定的变体

}

我要回帖

更多关于 安卓studio3.0使用教程 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信