相关疑难解决方法(0)

如何在Android上使用混淆(使用ProGuard)应用程序进行调试?

当我得到这样的东西

ERROR/AndroidRuntime(18677): Caused by: java.lang.NullPointerException
ERROR/AndroidRuntime(18677):     at com.companyname.a.a.a(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

我如何知道问题所在并调试此问题?我只获得了ProGuard的映射输出,并且不知道行号.谢谢.

debugging obfuscation android proguard

67
推荐指数
3
解决办法
3万
查看次数

当应用程序处于Debug状态时,为什么Gradle在Release模式下构建我的模块

我正在制作一个新的Android项目,包括标准'app'模块,以及一个库项目(让我们称之为'custom_lib').在appbuild.gradle文件,我的链接模块这样:

dependencies {
    compile project(':custom_lib')
}
Run Code Online (Sandbox Code Playgroud)

当我触发构建过程(Menu Build> Make Project)时,我在Gradle控制台中获得以下输出

Executing tasks: [clean, :app:compileDebugSources, :custom_lib:compileDebugSources]

Configuration on demand is an incubating feature.
:app:clean
:custom_lib:clean
:app:preBuild
:app:preDebugBuild
:app:checkDebugManifest
:app:preReleaseBuild
:custom_lib:compileLint
:custom_lib:copyReleaseLint UP-TO-DATE
:custom_lib:mergeReleaseProguardFiles UP-TO-DATE
:custom_lib:preBuild
:custom_lib:preReleaseBuild
:custom_lib:checkReleaseManifest
:custom_lib:prepareReleaseDependencies
:custom_lib:compileReleaseAidl
:custom_lib:compileReleaseRenderscript
:custom_lib:generateReleaseBuildConfig
:custom_lib:generateReleaseAssets UP-TO-DATE
:custom_lib:mergeReleaseAssets
:custom_lib:generateReleaseResValues UP-TO-DATE
:custom_lib:generateReleaseResources
:custom_lib:packageReleaseResources
:custom_lib:processReleaseManifest
:custom_lib:processReleaseResources
:custom_lib:generateReleaseSources
:custom_lib:compileReleaseJava
:custom_lib:processReleaseJavaRes UP-TO-DATE
:custom_lib:packageReleaseJar
:custom_lib:compileReleaseNdk
:custom_lib:packageReleaseJniLibs UP-TO-DATE
:custom_lib:packageReleaseLocalJar UP-TO-DATE
:custom_lib:packageReleaseRenderscript UP-TO-DATE
:custom_lib:bundleRelease
:app:prepareComAndroidSupportAppcompatV72102Library
:app:prepareComAndroidSupportSupportV42102Library
:app:prepareTestDoubleBuildCustom_libUnspecifiedLibrary
:app:prepareDebugDependencies
:app:compileDebugAidl
:app:compileDebugRenderscript
:app:generateDebugBuildConfig
:app:generateDebugAssets …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

44
推荐指数
2
解决办法
3万
查看次数

android调试器不会在断点处停止

我在控制台中看到调试语句,但调试器不会在任何断点上停止.我尝试清除所有断点并重新添加它们.不确定这是怎么发生的但是确实如此.

debugging android android-studio

17
推荐指数
7
解决办法
2万
查看次数

断点没有在Android Studio中受到影响

我正在使用Windows 7,最近从Eclipse切换到Android Studio.我现在无法调试.

运行Android Studio 0.8.6,我设置了一个完全默认的安装,我使用新项目向导创建了一个默认的空项目,目标是ICS SDK.然后我在onCreate中放置一个断点,单击调试按钮并运行.

附加调试器,因为我可以在调试器窗口中看到消息"连接到目标VM".

我知道代码正在执行,因为我正在更新UI中的一些文本来显示这一点.

我曾尝试在许多地方设置断点,但没有一个被击中.

我把头发拉到这里,因为我看不出我做错了什么.我是新手,因此我认为gradle中可能存在一些我应该更改的设置,但是使用向导构建的绝对标准项目肯定会让我遇到断点?

我注意到的一件事是在我的build.gradle文件中没有提到调试版本,只提供了一个版本.我想知道这可能是问题吗?

buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}
Run Code Online (Sandbox Code Playgroud)

注意.我在我自己的设备和模拟器上都尝试过这个

更新:

我更改了View Breakpoints选项中的设置以打开"Java Exception Breakpoints",但仅限于未捕获的异常.然后,在onCreate结束时,我故意造成NullPointerException.当我现在在调试中运行时,我仍然没有点击我的实际代码并且没有在源代码上看到代码中断,但程序确实暂停.我知道这是我的NullPointerException导致这种情况,因为当我删除它时,我可以看到代码继续并且不会中断.

在我的代码中断调试窗口时,我在"主"线程中,在一个名为"performLaunchActivity"的函数中.我看不到比这更多的信息了.因此,我可能正在通过调用performLaunchActivity的任何级别的代码进行调试,但我的源代码被视为无法单步执行它?

android intellij-idea gradle android-studio android-gradle-plugin

9
推荐指数
2
解决办法
1万
查看次数

在Android Studio中进行调试时,行断点不会暂停线程

我正在使用android studio 1.5.1并尝试在模拟器上调试非常简单的应用程序。我已经尝试了18-23版的模拟器,并且都做了相同的事情。基本上,它将在方法级别的断点处暂停线程,但不会在任何行断点处暂停线程。

debugging android android-emulator

7
推荐指数
1
解决办法
2324
查看次数

断点在 Android Studio 3.3 中不起作用

在注意到一些断点没有被命中后,我发现这篇文章回答了为什么:

断点不适用于 Android Studio 3.3

我不记得在 Android Studio 3.3 之前发生过这种情况。有什么方法可以阻止这种行为,以便在条件语句上命中断点?

android-studio-3.3

6
推荐指数
1
解决办法
3762
查看次数

Android:在 android studio 中进行 NDK-Build C/C++ 调试

在 Android studio(v4.1.2) 中尝试 ndk-build C 代码调试。下面是 build.gradle 设置。

  1. jni ,C/C++ 源文件 Dirs. 实际的 C 文件不在 jni 文件夹下,而是在其外部,但在 android.mk 文件中引用。

    sourceSets.main.jniLibs.srcDirs = ['D:/ccodefolder/jni/']

2)Android.mk 从 C、C++ 代码构建共享库,并链接内置共享库和静态库。

 externalNativeBuild {
           ndkBuild {
               path file('D:/ccodefolder/jni/Android.mk')
           }
       }
       ndkVersion '21.1.6352462'
Run Code Online (Sandbox Code Playgroud)
debug {
        debuggable true
        jniDebuggable true
        minifyEnabled false
        shrinkResources false
       //ndk.debugSymbolLevel = 'FULL'
    }
Run Code Online (Sandbox Code Playgroud)

4)项目结构如图所示。

在此输入图像描述

能够运行项目并生成共享库以及其他预构建的 .SO 和 apk 作品,还创建了 CPP 文件夹并能够查看我的项目的 C 代码文件。

调试问题:

LLDB 服务器启动并且调试器附加到进程,但是调试任何 C 文件都失败并出现以下错误。

当前不会命中断点。没有可执行代码与该行关联

在此输入图像描述

谢谢

android android-ndk android-studio ndk-build android-native-library

2
推荐指数
1
解决办法
2345
查看次数