2013-08-22 36 views
1

我正在创建一个钛的deezer模块。deezer appcelerator模块为Android

可视化登录消息时出现问题。

这里是我的DeezerAndroidModule.java(或它的一部分显著)

@Kroll.module(name="DeezerAndroidModule", id="deezer.android") 
public class DeezerAndroidModuleModule extends KrollModule 
{ 
    private static final String TAG = "DeezerAndroidModuleModule"; 
     private final String APP_ID = "xxx"; 
     private final static String[] PERMISSIONS = new String[]{"basic_access","offline_access","email"}; 
    private DeezerInterface deezerInterface; 
    private  DeezerConnect connection; 
     {...} 
    @Kroll.method 
    public void loginDeezer() 
    { 

     connection.authorize(deezerInterface, PERMISSIONS, new ReconnectDialogHandler()); 

    } 
     @Kroll.method @Kroll.getProperty 
    public String userId() 
    { 

     DeezerRequest request = new DeezerRequest("/user/me"); 
     String result = null; 
     try { 
      result = connection.requestSync(request); 
     }//try 
     catch(MalformedURLException ex) { 

     }//catch 
     catch(IOException ex) { 

     }//catch 
     catch (OAuthException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (DeezerError e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return result; 

    } 
     {...} 
    class ReconnectDialogHandler implements DialogListener { 

     @Override 
     public void onComplete(final Bundle values) { 
      SessionStore sessionStore = new SessionStore(); 
      sessionStore.save(connection, deezerInterface); 

     }//met 

     @Override 
     public void onDeezerError(final DeezerError deezerError) { 

     }//met 

     @Override 
     public void onError(final DialogError dialogError) { 

     }//met 

     @Override 
     public void onCancel() { 

     }//met 

     @Override 
     public void onOAuthException(OAuthException oAuthException) { 

     }//met 


    } 

的问题是,当我叫loginDeezer()功能,应用程序将引发一个通用Java Exception不提示登录视图...

这里是一个logcat标题

W/System.err(6737): java.lang.NullPointerException 
W/System.err(6737): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeSslConnection(HttpsURLConnectionImpl.java:412) 
W/System.err(6737): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl$HttpsEngine.makeConnection(HttpsURLConnectionImpl.java:378) 
W/System.err(6737): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.retrieveResponse(HttpURLConnectionImpl.java:1018) 
W/System.err(6737): at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:512) 
W/System.err(6737): at org.apache.harmony.luni.internal.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:258) 
W/System.err(6737): at com.deezer.sdk.b.a(Unknown Source) 
W/System.err(6737): at com.deezer.sdk.b.a(Unknown Source) 
W/System.err(6737): at com.deezer.sdk.DeezerConnectImpl.requestSync(Unknown Source) 
W/System.err(6737): at deezer.android.DeezerAndroidModuleModule.userId(DeezerAndroidModuleModule.java:84) 
W/System.err(6737): at org.appcelerator.kroll.runtime.v8.V8Object.nativeFireEvent(Native Method) 
W/System.err(6737): at org.appcelerator.kroll.runtime.v8.V8Object.fireEvent(V8Object.java:64) 
W/System.err(6737): at org.appcelerator.kroll.KrollProxy.doFireEvent(KrollProxy.java:835) 
W/System.err(6737): at org.appcelerator.kroll.KrollProxy.handleMessage(KrollProxy.java:1059) 
W/System.err(6737): at android.os.Handler.dispatchMessage(Handler.java:95) 
W/System.err(6737): at android.os.Looper.loop(Looper.java:130) 
W/System.err(6737): at org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:112) 

什么是不正确的我的代码?

+0

你能发布完整的堆栈跟踪和错误消息好吗? – XGouchet

+0

看到更改@XGouchet它看起来像.jar和.so Deezer android sdk文件不是从模块加载...如何做到这一点? –

+0

从你的堆栈跟踪显然加载了罐子。看起来你有一个SSL连接问题。您使用的是哪个版本的Deezer SDK? – XGouchet

回答

1

我解决了这个问题,这要归功于XGouchet,只是用活动:

在DeezerModule

@Kroll.method 
public void loginDeezer() 
{  
    TiApplication appContext = TiApplication.getInstance(); 
    Activity act = appContext.getCurrentActivity(); 
    Intent myIntent = new Intent(act, DeezerInterface.class); 
    act.startActivity(myIntent); 
} 

和DeezerInterface活动类是this

相关问题