Articles of android debug

Android Connect物理设备作为ADB设备,而不是便携式设备

我有一台Nexus 7平板电脑,我想用它来调试我正在开发的Android应用 。 我正在使用RDP和共享我的端口(包括平板电脑连接的USB)在远程服务器上进行开发和测试。 根据本文中的说明,我启用了USB调试,并且它通过相机(PTP)协议运行。 所以一切看起来都很好,但是尽管付出了很多努力,但我无法让Windows (在远程服务器上)将其识别为便携式设备。 出于调试目的,需要将其注册为ADB复合设备 。 上述文章说,为了克服这个问题,我需要更新驱动程序软件。 我安装了Google USB驱动程序 ,但是当我尝试使用设备管理器将驱动程序软件更新为Google USB驱动程序时,Windows只是告诉我“已经安装了适用于您设备的最佳驱动程序软件.Windows已经确定了驱动程序软件对于您的设备是最新的。数码相机。“ 我也尝试使用平板电脑的硬件ID列表作为复合Android设备编辑android_winusb.inf文件,但无济于事。 我怎么能告诉Windows我使用的是Android设备,而不是便携设备? 当它继续覆盖我时,如何让它使用正确的驱动程序?

Android App希望访问“/ Data”文件夹

我想将AAC编码的音频数据从我的Raspberry流式传输到我的Android手机。 接收数据的部分运行良好,但解码时存在一些问题。 我使用Media Extractor和Media Codec来解码音频数据。 这是代码的重要部分: MediaExtractor extractor = new MediaExtractor(); Uri path = Uri.fromFile(file); extractor.setDataSource(path.toString()); format = extractor.getTrackFormat(0); String mime = format.getString(MediaFormat.KEY_MIME); decoder = MediaCodec.createDecoderByType(mime); decoder.configure(format, null, null, 0); while (!stopTrack) { multicastSocket.receive(packet); decoder.start(); data = packet.getData(); inputBuffers = decoder.getInputBuffers(); outputBuffers = decoder.getOutputBuffers(); inputBufferIndex = decoder.dequeueInputBuffer(-1); if (inputBufferIndex >= 0) { inputBuffer = inputBuffers[inputBufferIndex]; […]

Android Studio 1.4(RC1,RC2)中的本机调试器未触及断点

我的项目中有一个PDFViewer模块,具体取决于android库模块libPDF 。 本机代码包含在库模块(在jni文件夹中)以及相应的android代码中。 我正在使用Gradle实验0.3.0-alpha4(与0.2.0和0.2.1相同的问题)。 有来自jni文件夹之外的库的本机文件 – 它们包含在android.ndk使用android.sources和带有CFlags的头文件。 该库被编译成.so文件并包含在apk中。 该项目使用PDFViewer的默认调试本机配置进行编译和运行,调试器以警告启动: 注意! 找不到符号目录 – 请检查您的本机调试配置。 调试时,本机代码(和Java代码)中没有断点。 如果我暂停调试器,则执行在一个名为epoll_wait的函数中。 我不知道这是否重要,但在Android Studio 1.3.2中我得到了 Throwable:找不到LLDB服务器 在事件日志中。 如果我尝试使用GDB,它也会引发exception。 我只建造了armae​​bi-v7a版本。 在给定的示例中,我没有看到任何特殊的gradle代码来包含本机代码的调试信息。 或者我错过了什么? 我是否需要自己从本机配置选项添加符号目录? 这些目录是什么以及如何find它们? 调试时示例示例不显示此警告,并且在其本机配置选项中未设置符号目录。 debuggable , jniDebuggable , ndk.debuggable标志设置为true, android:debuggable = true在清单中, CFlags += “-g”在ndk块中,这些都不起作用。 有任何想法吗? 提前致谢。 编辑:这是一个Github链接,其中包含我编写的示例示例以向您显示问题。 如果您尝试使用本机配置调试库中的本机代码,则不会触发任何断点。 新的Gradle实验0.3.0-alpha6无法解决问题。 其他人也有这个问题。 gradle插件仍然是alpha版本,因此库的原生调试仍然没有实现?

任务应用程序执行失败:compileDebugJavaWithJavac,将android studio从3.0.1更新为3.1.0

编辑:最初它看起来不可逾越,我忽略了。 实际问题是一个轻松的胜利。 真正发生的事情是,无意中我创建(或)创建了fragment_feed.xml(v14)文件以及升级到3.1.0后的原始fragment_feed.xml文件。 但是, (v14)fragment_feed.xml中没有Button Id,它们实际上存在于原始fragment_feed.xml文件中,而我已在FeedFragment.java文件中声明它们,但FeedFragment.java仅考虑(v14)fragment_feed.xml而编译。 我在(v14)fragment_feed.xml文件中添加了按钮Id。 然后它工作得很好。 因此,检查是否存在任何v14 kinda xml文件,并检查是否有任何遗漏已在.java文件中声明。 org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:app:compileDebugJavaWithJavac’. at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.java:248) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) […]

如何调试辅助function服务?

我在调试AccessibilityService时遇到了一些问题,但无法find解决方案 – 从Eclipse的每次部署/调试中 , 服务都不会自动重启 ,而且需要手动操作才能重新启动服务。 我现在被迫做的事情: 我正在添加一些新代码并使用Eclipse部署/调试。 正确部署并启动应用程序但未启动新版本的服务 (未显示来自服务的消息且断点不起作用)。 我手动打开设置 – >辅助function,看到我的服务运行。 我手动停止并启动服务 – 现在服务正在运行。 我想以更快的方式做到这一点: 我正在添加一些代码和部署,重新启动服务,然后断点工作,没有任何手动钻孔重启 ! 您能否建议如何在不手动重启的情况下调试辅助function服务?

为了在Android中调试本机代码,我缺少哪些步骤?

编辑:这仍然没有得到解决。 我怀疑基于评论我使用旧的NDK(10d)可能是一个问题所以我升级到15c并处理所有问题,以便用clang和新的c ++库编译我的东西。 不幸的是ndk-gdb在15c中被破坏了,我试图破解python使其工作并没有让我到处都是。 然后我使用了Android Studio 3.0预览版,我回到了以前的位置 – 我可以看到堆栈信息,但所有代码都是在lldb中汇编的。 工作必须继续 – 我回到使用logcat进行调试:( 我来到你身边,墙上有无数的点击伤痕。 我会尽量简明扼要,同时提供所有相关信息。 如果有任何我没有提供的相关信息,请告诉我。 概要: 我正在维护一个Android应用程序作为我工作的一部分。 我不得不求助于记录调试本机代码,因为虽然我可以设置断点并点击它们,但我无法查看源或variables信息 。 我花了很多时间和谷歌搜索试图了解我错过了什么,但仍然没有运气。 我的构建环境是使用Android NDK r10D的OSX,以及用于构建APK的gradle 3.2 。 我正在尝试使用AndroidStudio 3.0 beta 6来安装和调试APK。 我的Android.manifest包含在标记中: android:debuggable=”true” 本地代码: 这是使用-v编译其中一个本机c ++文件以获取详细程度的示例输出: ~/src/libraries/cBase$ make android Building obj/Binary.ao Using built-in specs. COLLECT_GCC=arm-linux-androideabi-g++ Target: arm-linux-androideabi Configured with: /s/ndk-toolchain/src/build/../gcc/gcc-4.8/configure –prefix=/tmp/ndk-User/build/toolchain/prefix –target=arm-linux-androideabi –host=x86_64-apple-darwin –build=x86_64-apple-darwin –with-gnu-as –with-gnu-ld –enable-languages=c,c++ […]

Android调试器 – Firebase对象被混淆

我目前有一个使用Firebase Auth的Android应用。 谷歌登录后,我得到一个FirebaseUser对象。 如果我设置断点并查看对象。 我看到混淆的对象和值。 看图: Proguard禁用调试,所以我猜这不是问题: buildTypes { debug { minifyEnabled false proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } release { minifyEnabled true proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro’ } } 谁知道我可能做错了什么? 任何帮助深表感谢!

Android在TextView中显示Logcat

我正在构建的应用程序具有对Android的root访问权限。 我希望在其中一个TextView中显示Logcat日志信息,以便在我调试时它可以显示在屏幕上。 有人可以给我一些想法,我可以调用哪些库/函数来访问这些日志? 谢谢

我可以从我的应用程序中触发Android的内置错误捕获function吗?

Android从ICS开始(我认为)为用户提供了捕获系统状态的能力,然后向他们希望的任何人发送或共享捕获的数据。 看看Android平板电脑中捕获的错误报告是什么意思? 捕获的数据包括屏幕截图,正在运行的进程列表,Logcat内容,每个进程的活动线程等。 这非常有用,但触发它似乎涉及用户按下有趣的组合键(Power + VolumeUp + VolumeDown)或启用Developer模式并从那里选择特定选项( 获取错误报告 , Power菜单错误报告 )。 有没有办法可以从我自己的代码中触发这个,这样我可以为我的用户提供一个简单的菜单选项来捕获错误报告?

调试时禁用ANR消息

在调试应用程序并在断点处停止时,Android会反复显示“没有响应。是否要关闭它?” 带有“等待”和“确定”选项的对话框。 有没有办法在调试应用程序时禁用它们?