Android:如何分析本地堆转储?
我使用命令dumpheap -n 创建了一个本机堆转储文件.该文件采用人类可读格式,但包含难以理解的信息.如何分析此文件并从中获取有用的信息? 功能名称的位置提供了功能地址.映射在文件底部提供.是否有任何工具可以映射这些工具并提供有意义的输出,而不是地址(加载库/函数的符号).如果没有一个,那么DDMS如何做?另外,如何加载符号以显示函数名称? 有什么方法可以比较两个或多个本机堆转储? 我看起来像这样的转储堆文件 Android Native Heap Dump V1.0 总记忆:13863984 分配记录:3108 Z 1 SZ 8388608 NUM 1 BT 40AFCD1A 40AFBC0E 40119D30 40795210 407A9BAE 407941A0 4076C264 40770B6C 40770B6C 407AA47A47F4 B4 4011530C Z 1 SZ 1516906 NUM 1 BT 4
48 2024-02-19
编程技术问答社区
在android studio中成功构建应用程序后,如何解决这个问题?
**错误:任务失败':app:transformdexarchivewithexternallibsdexmergerfordebug'. com.android.builder.dexing.dexarchivemergerexception:无法合并DEX ** 解决方案 step1:修改模块级构建.gradle文件以启用Multidex并添加Multidex库作为依赖项,如下所示: android { defaultConfig { ... minSdkVersion 15 targetSdkVersion 26 multiDexEnabled true } ... } dependencies { compile 'com.android.support:multidex:1.0.1' } 步骤2:如果您覆盖了应用程序类,请将其更改为扩展多透视应用(如果可能),
12 2024-02-19
编程技术问答社区
签署的apk 在解析清单时出现解析错误
当我尝试安装签名的APK时,我会收到一个解析错误(请参阅LogCat). 当我安装使用默认调试密钥签名的APK时,一切都可以. 这是logcat输出: 08-28 17:12:47.267 23828-23828/com.android.packageinstaller W/PackageInstaller: Parse error when parsing manifest. Discontinuing installation 08-28 17:12:47.267 23828-23828/com.android.packageinstaller W/PackageParser: Skipping dir: /mnt/shell/emulated/0/vertretungsplan-2.0.0.apk 08-28 17:12:47.287 23828-23828/com.android.packageinstaller D/dalvikvm: GC_FOR_ALLOC
12 2024-02-18
编程技术问答社区
我的应用程序在android studio 3.1.3的发布模式下等待调试器
我是Kotlin和Android Studio的业余爱好者.我试图将Facebook登录名集成到我的应用程序中,但最终陷入了障碍.遵循Android集成教程的Facebook登录后,我无法在发布模式下运行该应用程序.我以前确实在调试模式下运行了相同的应用程序进行调试.但是现在我手机上的应用也在发布模式下也表示"等待调试器". 我已经完成了以下操作,并且尚未工作. 将dealugg设置为可以在发行模式中的false 重新启动ADB 重新启动Android Studio 重新启动电话 重新启动计算机 切换USB端口 更新所有内容 将密钥库移入我的Android项目的基本路径内. 设置MinifyEnabled False 尝试检查buildconfig.build_type.equals(" debug") 在Run中显示, 07/24 12:11:43: Launching app $ adb shell am start -n "com.exam
10 2024-02-18
编程技术问答社区
如何在low api中使用getCurrencyInstance和格式?
我在以下代码中遇到错误: private void displayPrice (int number) { TextView price = (TextView)findViewById(R.id.txt_price); price.setText(NumberFormat.getCurrencyInstance().format(number)); } 我遇到的错误如下: Call requires API level 24 (current min is 14): android.icu.text.NumberFormat#getCurrencyInstance Android API 24可以使用此功能.如何在低api中使用它,例如API 15? 解决方案 更改您的导入以使用 java.java.text.numberformat (可从API 1获得)而不是/a>(可从API 24获得).
4 2024-02-18
编程技术问答社区
Android Studio-慢速调试,有时卡在 "等待调试器 "上,SIGSEGV崩溃了
这可能是一个太广泛的问题,但是这个问题让我发疯,我很感谢您的帮助: 似乎每个新的Android Studio版本都会变得越来越不可能.我正在遇到以下问题: 总体调试非常缓慢.踩踏是一个阻力. 失败的调试器连接尝试的高预要,该设备挂在"等待调试器"上. sigsegv" crashes",调试器将在随机的位置上停止在sigsegv上(在启动后立即使用效率),但是我可以单击 play 按钮并继续调试. 调试器断开连接. 这既发生在真实的设备和仿真器上,具有广泛的设置和Android API级别. 我的钻机非常强大:Win 10,I7-4810MQ,16G MEM,SSD.当前版本为2.3.3. 谁能帮我从这个混乱中有意义吗? 解决方案 事实证明,罪魁祸首是我使用JDK 8(1.8.0_45).我猜我的情况确实确实开始随着Android Studio 2.2的恶化而恶化,而Google 切换到OpenJDK . 修复程序就是简单地让Android
20 2024-02-18
编程技术问答社区
如何使用监视器(DDMS)工具来调试应用程序
如今,我将我的开发环境从日食转移到Android Studio.我真的很喜欢它的自动完成以及这一IDE提供的许多其他功能.但是,进行调试时我有一些问题. 我希望使用此IDE提供的监视器工具,自我包含的DDMS和非常好的视觉界面来跟踪内存使用情况,线程状况等.但是我找不到可以使用我必须创建的断点(编辑器中的红点) 逐步支持逐步支持的方法 我只能通过不打开此显示器进行逐步调试.由于当我尝试在调试器运行时尝试使用监视器时,它将弹出一个窗口,要求我首先断开ADB的连接.我也找不到从显示器启动应用程序的地方. 在Android Studio同时使用监视器时,有没有办法进行逐步调试? 解决方案 转到 工具> Android> Android设备监视器 在v0.8.6中.这将拉起DDMS Eclipse的视角. 其他解决方案 我认为事情(位置)发生了很小的变化. 为了: Android Studio 1.2.1.1 构建 @A​​I -141.19032
18 2024-02-18
编程技术问答社区
当outputDirectory或outputFileName改变时,启动调试应用程序时,AS无法找到apk
我正在使用Android Studio调试我的应用程序. 由于某些原因,我必须更改默认输出APK目录和文件名.因此,我更改了应用程序Varianiants在App build.gradle脚本中的outputDirectory和outputFileName. 此修改使APK输出到预期的位置和名称. 但是我发现一个问题是,当我像以前一样开始调试应用程序时,如所说: Installation did not succeed. The application could not be installed. List of apks: [0] 'C:\Users\progquest\projects\Study\app\build\outputs\apk\free\debug\app-free-debug.apk' Installation failed due to: 'Invalid File: C:\Users\progquest\projects\Study\app\build\
18 2024-02-18
编程技术问答社区
安卓即时应用程序:如何调试一个即时应用程序?
当我在Android Studio上调试我的即时应用程序时,调试器将附加到即时应用程序过程,并在大多数断点处停止执行.但是,它似乎忽略了我的主要活动的爆发方法中的断点.我尝试了"调试"和"将调试器附加到Android流程"选项.我想念什么? 解决方案 有关如何使用Android Studio调试器进行调试的基本信息,请 Android Studio调试器在调试即时应用时通常在大多数时候 .但是,您会注意到,调试器将无法在该应用程序生命周期的早期(例如Application.onCreate或Activity.onCreate>>)的设备上停止. . 当您的即时应用程序启动并运行时,它将在应用程序的软件包名称下运行.但是,在应用程序启动期间,当它以临时软件包名称运行时,以下形式有很短的时间: : com.google.android.instantapps.supervisor.isolated[0-9]+ 此临时名称由运行时分配.因为Android Stud
24 2024-02-18
编程技术问答社区
安卓模拟器SDK 10 api 29在重新安装和重启后无法启动
尝试使用SDK 10和API 29重新启动设备时,我会遇到奇怪的行为 重现: OS:MacOS 使用Android Studio定义新设备:Pixel 2(或Pixel 3/nexus 5),Android 10.0 x86,API 29 使用命令行启动模拟器:emulator -avd Pixel_2_API_29_SDK10 -writable-system -verbose 运行adb -s emulator-5554 root 运行adb -s emulator-5554 remount The adb remmount result failure as follow: adb remount Skip mounting partition: /product Skip mounting partition: /product_services Skip mounting partition: /product Skip mounting partitio
10 2024-02-18
编程技术问答社区
在Android Studio的调试窗口中出现"'this'is not available"。
请我真的需要帮助, 这似乎是"''这是不可用的Android Studio ,但我需要提供更多信息来解决特定问题. 所以我处在链接上的问题的情况下,但我怀疑这与我的构建设置有关. 请帮助. 这是我的 build.gradle : buildscript { repositories { maven { url 'http://download.crashlytics.com/maven' } mavenCentral() } dependencies { classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+' classpath 'com.jakewharton.hugo:hugo-plugin:1.2.1' } } apply plugin: 'com.android.application' apply plugin: 'crashlytic
50 2024-02-18
编程技术问答社区
Android studio 2.3 "调试显示已连接和已断开的行,但中间没有任何内容"
我正在物理设备中测试我的应用 在调试运行 上 Console $ adb push C:\Users\arjun\AndroidStudioProjects\Scol\app\build\outputs\apk\app-debug.apk /data/local/tmp/com.example.arjun.scol $ adb shell pm install -r "/data/local/tmp/com.example.arjun.scol" pkg: /data/local/tmp/com.example.arjun.scol Success $ adb shell am start -n "com.example.arjun.scol/com.example.arjun.scol.login.Login" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER -D
8 2024-02-18
编程技术问答社区
如何使用Android studio在发布模式下调试Android应用程序
由于某种原因,我必须在发布模式下运行我的Android应用程序.在运行应用程序时,我必须像在调试模式下使用一样.当我在发布模式下运行时,我的突破点没有达到,我在清单中添加了android:debuggable="true".仍然没有打破点.任何帮助. 预先感谢 解决方案 在我的情况下,我创建了与以前的版本构建相同的调试配置,并开始调试.这意味着您还必须在build gradle中进行debug版本进行签名. signingConfigs { config { keyAlias 'abc' keyPassword 'xyz' storeFile file('>.keystore') storePassword 'password' } } buildTypes { debug { debuggable true signingCon
12 2024-02-18
编程技术问答社区
在android studio中用设备调试时,Android Logcat是空的
当我尝试使用Android Studio LogCat中的Android设备进行调试时,什么也没显示.但是,当我使用模拟器logcat时,会显示所有消息.在实际设备上调试时,如何查看LogCat消息? 谢谢! 解决方案 在Android Studio 0.8.0中,您应该在运行应用程序之前通过工具 - > Android启用ADB集成.然后,日志猫可以正常工作.请注意,如果您在应用程序运行时禁用ADB集成并再次使其启用,则除非您重建项目,否则日志猫不会显示任何内容. 其他解决方案 重新启动手机.它神奇地解决 我使用的是由Android 6.0 m供电的Lenovo A7000Plus,发现我的Android Studio无法录制调试过程,但可以以某种方式记录其他人的电话调试报告.另外,我尝试使用 memu 模拟器,并正常记录. 奇怪的是,该设备已被Android Studio识别并准备好进行调试,但是从设备上运行的所有应用程序中根本没有记录调试报告.当然
10 2024-02-18
编程技术问答社区
如何在Android Studio中通过WiFi使用adb进行调试
我能够使用ADB Connect连接到手机,也可以ADB外壳. 但是当我去Run->设备选择器时,那里没有设备. 我该怎么办来连接我的(连接的)ADB Android Studio? 当我通过USB插入它时,它显示在列表上 解决方案 您可以在/Platform-tools/ 中找到ADB工具 cd Library/Android/sdk/platform-tools/ 您可以使用: 检查设备 ./adb devices 我的结果: List of devices attached XXXXXXXXX device 设置一个TCP端口: ./adb shell setprop service.adb.tcp.port 4444 ./adb tcpip 4444 结果消息: restarting in TCP mode port: 4444 要启动WiFi连接,您必须检查设备IP并执行: ./adb conn
26 2024-02-18
编程技术问答社区
用Android Studio调试时永远停留在 "等待调试器 "上
更新 假定的重复是在执行运行时被卡在" 等待调试器"中的问题em>等待调试器"执行 debug 时,产生问题的步骤也不同,解决方案也不同. 每当我尝试使用Android Studio的调试功能时,运行状态总是持续到: Launching application: com.astrotek.parashoot.debug/com.astrotek.ptpviewer.StarterActivity. DEVICE SHELL COMMAND: am start -n "com.astrotek.parashoot.debug/com.astrotek.ptpviewer.StarterActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.cat
12 2024-02-18
编程技术问答社区
'源代码与字节码不匹配'在设备上调试时
我有一个我正在针对API级别编辑的应用程序: ,然后在API级别23的真实设备上进行调试: 问题是,当我尝试通过Android OS自己的类调试时,我会得到"源代码不符合字节码".为什么会发生这种情况?该应用程序正在运行的测试设备是API级别23,并且要调试的源文件也是23级. 我真的很困惑.谁能解释为什么我看到此消息以及如何解决? 解决方案 有一个在Google的Issuetracker . 该问题中给出的潜在解决方案(截至本文的日期)为: 单击构建 - >清洁 在设置中禁用即时运行 - >构建,执行,部署 其他解决方案 这是我的解决方案: 如果您获得了多个库版本,这可能会有所帮助. 在LIB源代码上设置断点 让代码运行到断点 您将获得这些提示 单击箭头图标 您将获得此 双击双击以选择正确的LIB(通常是LIB的最高版本是正确的) 我已经错误地单击了"禁用"按钮,您可以在调试器设置中启用它 如果您没有步骤
18 2024-02-18
编程技术问答社区
安卓应用在调试模式下启动时崩溃了
当我在 debug 模式下运行时,应用程序崩溃了,但是当我刚运行时,它通常会起作用. 我认为当附加调试器时发生问题. 日志: A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x7f44a18400, GetDebugThread()=0x7f44a18400) Expected event thread A/art: art/runtime/runtime.cc:422] Runtime aborting... A/art: art/runtime/runtime.cc:422] Aborting thread: A/art: art/runtime/runtime.cc:422] "JDWP" prio=5 tid=4 WaitingForDebuggerSend A/art: art/runt
44 2024-02-18
编程技术问答社区
如何调试/重置安卓6.0的权限?
在迁移我的一个应用程序使用Android 6.0权限系统时,我发现很难使用模拟器调试权限. 发现: 使用requestPermissions()方法时,在应用程序信息屏幕中禁用许可. 重新安装该应用似乎是使应用程序再次显示授予权限对话框的唯一方法. 使用Android Emulator调试许可的适当方法是什么? 解决方案 实际上很容易调试Android 6.0权限.您可以使用以下ADB shell命令将权限重置为当前前景应用程序 的"安装状态"的权限:: adb shell pm reset-permissions 注意:当前您无法重置特定软件包的运行时权限,软件包管理器(PM)工具帮助部分: 将所有运行时权限恢复为默认状态. 您可以使用Android Studio中的终端接口轻松执行reset-permissions命令.请注意,仅在将ADB目录添加到路径系统环境变量时,ADB命令才能有效(请参阅:将ADB添加到路径变量). 您还
谷歌地图在安卓系统上运行良好,但我仍然得到一个错误 "无法找到类'maps.i.k',从maps.z.ag.a方法中引用"
我通过下载库,将其添加到工作区,然后将其引用为库. ,我让Google Maps Android Api V2完美地在我的Android应用程序上工作. ,但是一旦包含地图片段开始的活动开始 ,我仍然会遇到此错误 Could not find class 'maps.i.k', referenced from method maps.z.ag.a 我使用支持地图片段 这个错误似乎并没有影响我,无论如何或崩溃应用程序,我都应该打扰吗? 添加了清单 P.S E_Selectjourney是我显示并使用地图
14 2024-02-16
编程技术问答社区