-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference #26
Comments
应该是key没有配置对。重新安装一下试试看,注意key的格式。 |
重新了很多次,依然还是不行。应该不是Key的问题,我下载支付宝的SDKDemo,将生成的Key加入之后运行没有问题。 |
我在开android studio,一会打开看看调用栈。 在跟你确认一遍,安装的命令是这样的: cordova plugin add https://github.com/charleyw/cordova-plugin-alipay.git --variable PARTNER_ID=201118888070884 --variable SELLER_ACCOUNT=youxiang@youxiang.com --variable PRIVATE_KEY=MIasdfasdfEFAASCAmAwggJcAgEAAoGBAJ2yLuasfadsfasdfasdfasdf1lzZzBgrvkl9kqhJSFAACQ/A/Bs0aasdfductbgOLzJkHu5mYUbIi6ACHfq+JzGTFlGW2FPLAgMBAAECgYEAigIlqp9L6fuQU8n2aJf5h5OABWH7kdEj35KZSPX7GoGV4akaELjiHDxmLuV+KoojzKS5WnfAzO72/Masdfasdf5AsDkYpYnEYqaPWeFJI8VffYgarzDA1t/nSdRKfwNgrdH1R+IZWDCdyUtmfAkEAwdiDKSGaTAwCZY8XHIzjNu1+tvQYweqHw0UIIr1cVW2uwGj7dQF+6ulPpPcnyY5r4/asdfasdfa+Ek/1y0ODupP1divNfyeTNCTsK+TfHWdWPDk0Lz9/rbKtdI6p2dAfez8xBlV3wJAH7FhiGkJDCPuhGJHuhBC2eksjYcNQS8yMTfpI5zoKsN7DdRcQH4VHR02O1d5dtfFRgo+20la3fEgK+PuoLasdfadsf5G2Bknth+OLCKLJS3nasdfasdfh5Iytv8dXT800dOrKO6slhBGO4TMvs+88mvgasdfasdfMdQ0tQl7A== |
是的。我用你给的这套Key也是提示这个信息。真是不好意思,麻烦你了。 |
我看了一下源码,确实是 private key没找到。但是我不太清楚在你的环境上为什么没找到。 你的cordova版本是多少? |
你可以试一下 按照 这个 步骤 手动 安装。 |
使用的Cordova版本是6.0,我直接修改源代码,将private key固定写在sign方法上也是不行。手动安装我也尝试了,错误提示一样的。 |
你的key的格式是PKCS的吗? |
好的,我装一下看看 |
我这边是可以的,刚才还付了0.02元,我把 我用的安装命令发到你邮箱了 songhaipeng@gmail.com PS: 我把你发的key的内容删掉了。 |
好的。非常感谢~~ |
我先将插件下载到本地,然后将三个参数写在java文件中就可以了,但是如果是引入插件的时候作为变量传入就找不到了。不知道问题出现在什么地方。 |
你是windows 还是mac? |
是Windows 10 64位,我在尝试修改获取参数方法,看看是否可以。 |
好的,我没测试过在windows上用。估计可能是命令行的某些限制把。 |
找到原因了。但是不明白为什么,如果将plugin里面的name="private_key"修改为name="privatekey",删除那个下划线就可以找到了。 |
@charleyw 安卓调试通了之后,苹果版本一路畅通。多谢你的耐心帮助^_^ |
没关系,这本身也是帮我完善这个插件。 不过这个原因真是很匪夷所思。之后我把那个下划线删了。 |
我测是使用的手机是三星S5,型号G9008W,安卓版本5.0。我也是在源文件里面增加了一些日志,逐个跟踪才发现这个问题。然后我看了一下其他人写的插件,发现他们都没有用下划线,我就尝试修改一下就可以了。 |
好的,谢谢了。我改一下。:) |
另外那个plugin.xml头文件中声明android命名空间的问题也修改一下吧。这样在VisualStudio中可以直接导入了。例如https://github.com/vilic/cordova-plugin-wechat.git的plugin.xml文件。 |
谢啦,我都改好了。 |
OK,刚刚接触Cordova,以前都是用Xamarin开发,以后还请多多指教啊 |
Android进行真机测试的时候提示这个信息,具体调试堆栈信息如下,麻烦帮忙看看。多谢~~
W/System.err( 2368): java.lang.NullPointerException: Attempt to get length of null array
W/System.err( 2368): at java.security.spec.EncodedKeySpec.(EncodedKeySpec.java:37)
W/System.err( 2368): at java.security.spec.PKCS8EncodedKeySpec.(PKCS8EncodedKeySpec.java:35)
W/System.err( 2368): at wang.imchao.plugin.alipay.SignUtils.sign(SignUtils.java:17)
W/System.err( 2368): at wang.imchao.plugin.alipay.AliPayPlugin.sign(AliPayPlugin.java:154)
W/System.err( 2368): at wang.imchao.plugin.alipay.AliPayPlugin.pay(AliPayPlugin.java:59)
W/System.err( 2368): at wang.imchao.plugin.alipay.AliPayPlugin.execute(AliPayPlugin.java:45)
W/System.err( 2368): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98)
W/System.err( 2368): at org.apache.cordova.PluginManager.exec(PluginManager.java:133)
W/System.err( 2368): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
W/System.err( 2368): at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
W/System.err( 2368): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
W/System.err( 2368): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
W/System.err( 2368): at android.os.Handler.dispatchMessage(Handler.java:102)
W/System.err( 2368): at android.os.Looper.loop(Looper.java:145)
W/System.err( 2368): at android.os.HandlerThread.run(HandlerThread.java:61)
E/PluginManager( 2368): Uncaught exception from plugin
E/PluginManager( 2368): java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.length()' on a null object reference
E/PluginManager( 2368): at libcore.net.UriCodec.encode(UriCodec.java:132)
E/PluginManager( 2368): at java.net.URLEncoder.encode(URLEncoder.java:57)
E/PluginManager( 2368): at wang.imchao.plugin.alipay.AliPayPlugin.pay(AliPayPlugin.java:62)
E/PluginManager( 2368): at wang.imchao.plugin.alipay.AliPayPlugin.execute(AliPayPlugin.java:45)
E/PluginManager( 2368): at org.apache.cordova.CordovaPlugin.execute(CordovaPlugin.java:98)
E/PluginManager( 2368): at org.apache.cordova.PluginManager.exec(PluginManager.java:133)
E/PluginManager( 2368): at org.apache.cordova.CordovaBridge.jsExec(CordovaBridge.java:59)
E/PluginManager( 2368): at org.apache.cordova.engine.SystemExposedJsApi.exec(SystemExposedJsApi.java:41)
E/PluginManager( 2368): at org.chromium.base.SystemMessageHandler.nativeDoRunLoopOnce(Native Method)
E/PluginManager( 2368): at org.chromium.base.SystemMessageHandler.handleMessage(SystemMessageHandler.java:53)
E/PluginManager( 2368): at android.os.Handler.dispatchMessage(Handler.java:102)
E/PluginManager( 2368): at android.os.Looper.loop(Looper.java:145)
E/PluginManager( 2368): at android.os.HandlerThread.run(HandlerThread.java:61)
The text was updated successfully, but these errors were encountered: