2017-03-03 29 views
1

我無法在我的Android應用上正確初始化Branch.io。Android上的Branch.io initSession返回null

這裏是我的AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.xxx.xxxx.app" 
android:versionCode="150" 
android:versionName="2.8.1 (150)" > 

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="android.permission.VIBRATE" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> 
<uses-permission android:name="android.permission.RECORD_AUDIO" /> 
<uses-permission android:name="android.permission.CAMERA" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> 
<uses-permission android:name="android.permission.CALL_PHONE"/> 

<uses-feature android:name="android.hardware.camera" android:required="true" /> 
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" /> 
<uses-feature android:name="android.hardware.telephony" android:required="false"/> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:theme="@style/AppTheme"> 

    <!-- Branch.io values --> 
    <!-- <meta-data android:name="io.branch.sdk.TestMode" android:value="true" /> --> 
    <meta-data android:name="io.branch.sdk.BranchKey" android:value="@string/branch_key" /> 
    <receiver android:name="io.branch.referral.InstallListener" android:exported="true"> 
     <intent-filter> 
      <action android:name="com.android.vending.INSTALL_REFERRER" /> 
     </intent-filter> 
    </receiver> 


    <activity 
     android:name=".activities_fragments.CXMainActivity" 
     android:screenOrientation="portrait" 
     android:configChanges="orientation|keyboardHidden|keyboard|screenSize" 
     android:windowSoftInputMode="adjustPan"> 

     <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 

     <intent-filter> 
      <data android:scheme="@string/branch_uri_scheme" android:host="@string/branch_host" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <category android:name="android.intent.category.BROWSABLE" /> 
     </intent-filter> 

    </activity> 
</application> 

這是我的主要活動代碼:

protected void onStart() 
{ 
    super.onStart(); 
    if(!initiatedBranchDeepLinks) { 
     // Configure Branch.io 
     initiatedBranchDeepLinks = true; 
     Branch branch = Branch.getInstance(); 
     branch.initSession(new Branch.BranchReferralInitListener(){ 
      @Override 
      public void onInitFinished(JSONObject referringParams, BranchError error) { 
       if (error == null) { 
        // params are the deep linked params associated with the link that the user clicked -> was re-directed to this app 
        // params will be empty if no data found 
        // ... insert custom logic here ... 
        String message = "Branch.io onInitFinished. Params: " + referringParams.toString(); 
        Log.d(TAG, message); 

       } else { 
        Log.i(TAG, error.getMessage()); 
       } 
      } 
     }, this.getIntent().getData(), this); 
    } 
} 

我得到了一個不同的應用程序並運行在Android上,他們似乎是相同的,但由於某種原因,當我調用branch.initSession(...)時,它返回一個空值。

任何想法?

+0

你在這裏使用自定義的應用程序類別叫initSession當你有getAutoInstance? –

+0

我不是。這是必需的。我檢查了我的其他項目(工作的),它有一個自定義應用程序。 – JustLearningAgain

+0

(更新)我把一個自定義的應用程序與Branch.getAutoInstance(this),我跑!謝謝! – JustLearningAgain

回答

0
Branch.getAutoInstance(this) -> Branch.getAutoInstance(this, true) 
Branch.getInstance(context) -> Branch.getInstance() 

()