Java “有什么区别?”;调试为";vs出口APK

Java “有什么区别?”;调试为";vs出口APK,java,android,eclipse,debugging,paypal,Java,Android,Eclipse,Debugging,Paypal,无绒线标记。当我通过eclipse插入计算机的每个设备进行调试时,paypal sdk组件完全可以正常工作。当我将项目导出为APK时,当我进入应用程序的paypal部分时,它“不幸地停止”。调试运行与编译的apk文件的主要区别是什么?同样,当作为调试运行时,实时支付服务在项目中工作良好。此项目中没有对SHA1差异敏感的API键(签名的apk vs调试) 以下是我从apk安装的应用程序报告中看到的一些情况: java.lang.NoSuchMethodError: no method with n

无绒线标记。当我通过eclipse插入计算机的每个设备进行调试时,paypal sdk组件完全可以正常工作。当我将项目导出为APK时,当我进入应用程序的paypal部分时,它“不幸地停止”。调试运行与编译的apk文件的主要区别是什么?同样,当作为调试运行时,实时支付服务在项目中工作良好。此项目中没有对SHA1差异敏感的API键(签名的apk vs调试)

以下是我从apk安装的应用程序报告中看到的一些情况:

java.lang.NoSuchMethodError: no method with name='onEdgeUpdate'   signature='(Lio/card/payment/DetectionInfo;)V' in class Lio/card/payment/CardScanner;
at java.lang.Runtime.nativeLoad(Native Method)
at java.lang.Runtime.doLoad(Runtime.java:418)
at java.lang.Runtime.loadLibrary(Runtime.java:359)
at java.lang.System.loadLibrary(System.java:525)
at io.card.payment.CardScanner.<clinit>(Unknown Source)
at io.card.payment.z.c(Unknown Source)
at io.card.payment.z.a(Unknown Source)
at io.card.payment.CardIOActivity.a(Unknown Source)
at io.card.payment.CardIOActivity.a(Unknown Source)
at com.paypal.android.sdk.payments.PaymentMethodActivity.onCreate(Unknown Source)
at android.app.Activity.performCreate(Activity.java:5133)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

根据developer.android的说法,“ProGuard工具通过删除未使用的代码,并使用语义模糊的名称重命名类、字段和方法来收缩、优化和模糊代码。结果是生成一个更小的.apk文件,更难进行反向工程。”

我没有包括:

 @proguard-paypal.cnf marker in the proguard-project.txt

对于android paypal sdk的未来参考,请参见。

根据developer.android,“ProGuard工具通过删除未使用的代码并重命名语义模糊的类、字段和方法来收缩、优化和模糊代码。结果是生成一个较小的.apk文件,更难进行反向工程。”

我没有包括:

 @proguard-paypal.cnf marker in the proguard-project.txt

有关android paypal sdk的未来参考,请参阅。

您的方法onEdgeUpdate()是否在按钮的onClick属性中的xml中声明?我想Nitin已经确定了。这可能是一个proguard混淆问题。您可以添加保护该方法的proguard设置,也可以从XML文件中删除任何类型的方法名称引用(更好的选项),并在代码中设置click listeners等。@nitinseth我不认识此方法。它必须是paypal库的一部分,因为它肯定不在我的任何xml文件中。当我按下“结帐”按钮时,应用程序并没有完全停止,paypal组件会在屏幕上短暂闪烁。@NobuGames我从来没有想过ProGuard。我打赌我漏掉了什么。可能是这样的:在proguard-paypal.cnf。。感谢您保存了mapping.txt文件,该文件是Pro guards模糊处理产生的输出之一。你可以得到更多关于问题来源的信息,因为你可以确定z.c和z.a是什么。有关mapping.txt的更多详细信息,请参见此处。您的方法onEdgeUpdate()是在按钮的onClick属性中用xml声明的吗?我想尼廷已经搞定了。这可能是一个proguard混淆问题。您可以添加保护该方法的proguard设置,也可以从XML文件中删除任何类型的方法名称引用(更好的选项),并在代码中设置click listeners等。@nitinseth我不认识此方法。它必须是paypal库的一部分,因为它肯定不在我的任何xml文件中。当我按下“结帐”按钮时,应用程序并没有完全停止,paypal组件会在屏幕上短暂闪烁。@NobuGames我从来没有想过ProGuard。我打赌我漏掉了什么。可能是这样的:在proguard-paypal.cnf。。感谢您保存了mapping.txt文件,该文件是Pro guards模糊处理产生的输出之一。你可以得到更多关于问题来源的信息,因为你可以确定z.c和z.a是什么。有关mapping.txt的更多详细信息,请参见此处。