当id将android studio更新到3.6 android gradle工具到3.6.0时,出现问题。当我生成sign apk时,出现异常?是这样的
Execution failed for task ':app:minifyReleaseWithR8'.java.lang.NullPointerException (no error message)
* Exception is:
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:minifyReleaseWithR8'.
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:166)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.accept(ExecuteActionsTaskExecuter.java:163)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:191)
10:35:36.483 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:156)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:62)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:108)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOutputsTaskExecuter.java:67)
10:35:36.484 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46)
....
Caused by: java.lang.NullPointerException
10:35:36.486 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.android.tools.r8.naming.A.a(:7)
10:35:36.486 [ERROR] [org.gradle.internal.buildevents.BuildExceptionReporter] at com.android.tools.r8.naming.A.c(:1)
10:35:36.487 …
Run Code Online (Sandbox Code Playgroud) android gradle android-studio android-gradle-plugin cordova-plugin-proguard
我正在使用 angularjs 开发 ionic 移动应用程序,为了加密 ionic 应用程序的源代码,我们使用 Cordova 插件“crypt file”在构建时加密代码。在进行APK逆向工程后,我们发现根文件夹“assets/www”按预期加密,但通过使用“java反编译器”工具,我们可以访问“java代码”插件源代码并获得解密密钥。
那么,有没有什么办法可以加密或隐藏插件文件夹,让攻击者无法通过APK看到我们在应用中使用了哪些插件呢?
提前致谢
encryption cordova ionic-framework cordova-plugins cordova-plugin-proguard
对不起,如果有人已经要求这个。我对 Stack 很陌生,我没有找到解决方案。
这是我缩小后从我的应用程序的使用中获得的堆栈。
08-29 13:27:30.330 10037-10192/? E/PluginManager: Uncaught exception from plugin
java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.XmlResourceParser android.content.pm.PackageItemInfo.loadXmlMetaData(android.content.pm.PackageManager, java.lang.String)' on a null object reference
at android.support.v4.content.FileProvider.parsePathStrategy(Unknown Source)
at android.support.v4.content.FileProvider.getPathStrategy(Unknown Source)
at android.support.v4.content.FileProvider.getUriForFile(Unknown Source)
at org.apache.cordova.camera.CameraLauncher.takePicture(Unknown Source)
at org.apache.cordova.camera.CameraLauncher.callTakePicture(Unknown Source)
at org.apache.cordova.camera.CameraLauncher.execute(Unknown Source)
at org.apache.cordova.CordovaPlugin.execute(Unknown Source)
at org.apache.cordova.PluginManager.exec(Unknown Source)
at org.apache.cordova.CordovaBridge.jsExec(Unknown Source)
at org.apache.cordova.engine.SystemExposedJsApi.exec(Unknown Source)
at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:7)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.os.HandlerThread.run(HandlerThread.java:61)
Run Code Online (Sandbox Code Playgroud)
这是我的 proguard 文件:
# ionic
-keep class org.apache.cordova.** { *; }
-keep class …
Run Code Online (Sandbox Code Playgroud)