Search Unity

error CS0117: `StartApp.StartAppWrapper' does not contain a definition for `init'

Discussion in 'Scripting' started by NathanGroovy, Aug 23, 2017.

  1. NathanGroovy

    NathanGroovy

    Joined:
    Sep 9, 2015
    Posts:
    43
    I'm getting some errors in my console window:

    Assets/Scripts/UI.cs(21,19): error CS0117: `StartApp.StartAppWrapper' does not contain a definition for `init'

    Assets/Scripts/UI.cs(22,19): error CS0117: `StartApp.StartAppWrapper' does not contain a definition for `loadAd'

    Assets/Scripts/UI.cs(27,20): error CS0117: `StartApp.StartAppWrapper' does not contain a definition for `showAd'


    Here's the script that's getting the errors. I'm having trouble figuring out why it can't find the methods. They're in the code if you look for it, but most of the lines are greyed out, and I'm not sure how to use #if statements:\

    Code (CSharp):
    1. using UnityEngine;
    2. using System.Collections;
    3. using System;
    4.  
    5. namespace StartApp {
    6.    
    7.     public class StartAppWrapper : MonoBehaviour {
    8.         #if UNITY_ANDROID
    9.         private static string accountId;
    10.         private static string applicationId;
    11.         private static bool enableReturnAds = true;
    12.         private static bool isAccountIdUsed = false;
    13.        
    14.         private static AndroidJavaClass unityClass;
    15.         private static AndroidJavaObject currentActivity;
    16.         private static AndroidJavaObject wrapper;
    17.    
    18.        
    19.         #if (!(UNITY_2_6 || UNITY_2_6_1 || UNITY_3_0 || UNITY_3_0_0 || UNITY_3_1 || UNITY_3_2 || UNITY_3_3 || UNITY_3_4 || UNITY_3_5 || UNITY_4_0 || UNITY_4_0_1 || UNITY_4_1))
    20.         // Unity 4.2 or newer
    21.         public interface AdEventListener {
    22.             void onReceiveAd();
    23.             void onFailedToReceiveAd();
    24.         }
    25.        
    26.         public interface AdDisplayListener {
    27.             void adHidden();
    28.             void adDisplayed();
    29.             void adClicked();
    30.         }
    31.        
    32.         public interface VideoListener {
    33.             void onVideoCompleted();
    34.         }
    35.        
    36.         public enum AdMode {
    37.             AUTOMATIC = 1,
    38.             FULLPAGE,
    39.             OFFERWALL,
    40.             REWARDED_VIDEO,
    41.             [Obsolete]
    42.             OVERLAY
    43.         }
    44.        
    45.         /* Implementation of Splash Config for Unity */
    46.         public class SplashConfig {
    47.            
    48.             public enum Theme {
    49.                 DEEP_BLUE = 1,
    50.                 SKY,
    51.                 ASHEN_SKY,
    52.                 BLAZE,
    53.                 GLOOMY,
    54.                 OCEAN
    55.             };
    56.            
    57.             public enum Orientation {
    58.                 PORTRAIT = 1,
    59.                 LANDSCAPE,
    60.                 AUTO
    61.             };
    62.            
    63.             private AndroidJavaObject javaSplashConfig = null;
    64.            
    65.             public SplashConfig() {
    66.                 init();
    67.                 javaSplashConfig = new AndroidJavaObject("com.startapp.android.publish.splash.SplashConfig");
    68.             }
    69.            
    70.             public AndroidJavaObject getJavaSplashConfig() {
    71.                 return javaSplashConfig;
    72.             }
    73.            
    74.             public SplashConfig setAppName(string appName) {
    75.                 AndroidJavaObject appNameJava = new AndroidJavaObject("java.lang.String", appName);
    76.                 wrapper.Call<AndroidJavaObject>("setAppName", getJavaSplashConfig(), appNameJava);
    77.                 return this;
    78.             }
    79.            
    80.             public SplashConfig setTheme(Theme theme) {
    81.                 int themeIndex = (int)theme;
    82.                 AndroidJavaObject themeIndexInteger = new AndroidJavaObject("java.lang.Integer", themeIndex);
    83.                 wrapper.Call<AndroidJavaObject>("setTheme", getJavaSplashConfig(), themeIndexInteger);
    84.                 return this;
    85.             }
    86.            
    87.             public SplashConfig setLogo(string fileName) {
    88.                 byte[] logoByteArray = null;
    89.                 Texture2D logoTexture = Resources.Load (fileName) as Texture2D;
    90.                 if (logoTexture != null) {
    91.                     logoByteArray = logoTexture.EncodeToPNG ();
    92.                 }
    93.                 wrapper.Call<AndroidJavaObject>("setLogo", getJavaSplashConfig(), logoByteArray);
    94.                 return this;
    95.             }
    96.            
    97.             public SplashConfig setOrientation(Orientation orientation) {
    98.                 int orientationIndex = (int)orientation;
    99.                 AndroidJavaObject orientationIndexInteger = new AndroidJavaObject("java.lang.Integer", orientationIndex);
    100.                 wrapper.Call<AndroidJavaObject>("setOrientation", getJavaSplashConfig(), orientationIndexInteger);
    101.                 return this;
    102.             }
    103.         }
    104.        
    105.         /* Implementation of Ad Event Listener for Unity */
    106.         private class ImplementationAdEventListener : AndroidJavaProxy {
    107.             private AdEventListener listener = null;
    108.            
    109.             public ImplementationAdEventListener(AdEventListener listener) : base("com.startapp.android.publish.AdEventListener") {
    110.                 this.listener = listener;
    111.             }
    112.            
    113.             void onReceiveAd(AndroidJavaObject ad) {
    114.                 if (listener != null){
    115.                     listener.onReceiveAd();
    116.                 }
    117.             }
    118.            
    119.             void onFailedToReceiveAd(AndroidJavaObject ad) {
    120.                 if (listener != null){
    121.                     listener.onFailedToReceiveAd();
    122.                 }
    123.             }
    124.            
    125.             int hashCode() {
    126.                 return listener.GetHashCode();
    127.             }
    128.            
    129.             bool equals(AndroidJavaObject o) {
    130.                 int otherHash = o.Call<int>("hashCode");
    131.                 return otherHash == listener.GetHashCode();
    132.             }
    133.         }
    134.        
    135.         /* Implementation of Ad Display Listener for Unity */
    136.         private class ImplementationAdDisplayListener : AndroidJavaProxy {
    137.             private AdDisplayListener listener = null;
    138.            
    139.             public ImplementationAdDisplayListener(AdDisplayListener listener) : base("com.startapp.android.publish.AdDisplayListener"){
    140.                 this.listener = listener;
    141.             }
    142.            
    143.             void adHidden(AndroidJavaObject ad) {
    144.                 if (listener != null){
    145.                     listener.adHidden();
    146.                 }
    147.             }
    148.            
    149.             void adDisplayed(AndroidJavaObject ad) {
    150.                 if (listener != null){
    151.                     listener.adDisplayed();
    152.                 }
    153.             }
    154.            
    155.             void adClicked(AndroidJavaObject ad) {
    156.                 if (listener != null){
    157.                     listener.adClicked();
    158.                 }
    159.             }
    160.            
    161.             int hashCode() {
    162.                 return listener.GetHashCode();
    163.             }
    164.            
    165.             bool equals(AndroidJavaObject o) {
    166.                 int otherHash = o.Call<int>("hashCode");
    167.                 return otherHash == listener.GetHashCode();
    168.             }
    169.         }
    170.        
    171.         /* Implementation of Ad Display Listener for Unity */
    172.         private class OnBackPressedAdDisplayListener : AndroidJavaProxy {
    173.             private string gameObjectName = null;
    174.             private bool clicked = false;
    175.            
    176.             public OnBackPressedAdDisplayListener(string gameObjectName) : base("com.startapp.android.publish.AdDisplayListener") {
    177.                 this.gameObjectName = gameObjectName;
    178.             }
    179.            
    180.             void adHidden(AndroidJavaObject ad) {
    181.                 if (!clicked) {
    182.                     init();
    183.                     Application.Quit();
    184.                 }
    185.             }
    186.            
    187.             void adDisplayed(AndroidJavaObject ad) {
    188.                
    189.             }
    190.            
    191.             void adClicked(AndroidJavaObject ad) {
    192.                 clicked = true;
    193.             }
    194.            
    195.             void adNotDisplayed(AndroidJavaObject ad) {
    196.                
    197.             }
    198.         }
    199.        
    200.         /* Implementation of Video Listener for Unity */
    201.         private class ImplementationVideoListener : AndroidJavaProxy {
    202.             private VideoListener listener = null;
    203.            
    204.             public ImplementationVideoListener(VideoListener listener) : base("com.startapp.android.publish.video.VideoListener"){
    205.                 this.listener = listener;
    206.             }
    207.            
    208.             void onVideoCompleted() {
    209.                 if (listener != null){
    210.                     listener.onVideoCompleted();
    211.                 }
    212.             }
    213.         }
    214.        
    215.         public static void setVideoListener(VideoListener listener) {
    216.             init ();
    217.             wrapper.Call ("setVideoListener", new ImplementationVideoListener(listener));
    218.         }
    219.        
    220.         public static void loadAd(AdEventListener listener) {
    221.             loadAd (AdMode.AUTOMATIC, listener);
    222.         }
    223.        
    224.         public static void loadAd(AdMode adMode) {
    225.             loadAd (adMode, null);
    226.         }
    227.        
    228.         public static void loadAd(AdMode adMode, AdEventListener listener) {
    229.             loadAd (adMode, listener, false);
    230.         }
    231.        
    232.         private static void loadAd(AdMode adMode, AdEventListener listener, bool is3D) {
    233.             init();
    234.             int adModeIndex = (int)adMode;
    235.             AndroidJavaObject adModeIndexInteger = new AndroidJavaObject("java.lang.Integer", adModeIndex);
    236.             AndroidJavaObject is3DBoolean = new AndroidJavaObject("java.lang.Boolean", is3D);
    237.             if (listener == null) {
    238.                 wrapper.Call ("loadAd", adModeIndexInteger);
    239.                 return;
    240.             }
    241.             wrapper.Call ("loadAd", adModeIndexInteger, new ImplementationAdEventListener (listener));
    242.         }
    243.        
    244.         public static bool showAd(AdDisplayListener listener) {
    245.             init();
    246.             return wrapper.Call<bool>("showAd", new object[] {new ImplementationAdDisplayListener(listener)});
    247.         }
    248.        
    249.         public static bool onBackPressed(string gameObjectName) {
    250.             init();
    251.             return wrapper.Call<bool>("onBackPressed", new object[] {new OnBackPressedAdDisplayListener(gameObjectName)});
    252.         }
    253.        
    254.         public static void showSplash() {
    255.             init ();
    256.             wrapper.Call ("showSplash");
    257.         }
    258.        
    259.         public static void showSplash(SplashConfig splashConfig) {
    260.             init ();
    261.             wrapper.Call ("showSplash", splashConfig.getJavaSplashConfig());
    262.         }
    263.        
    264.         #else
    265.         // Unity 4.1 or older - no listener
    266.         public static bool onBackPressed(string gameObjectName) {
    267.             init();
    268.             return wrapper.Call<bool>("onBackPressed");
    269.         }
    270.         #endif
    271.  
    272.         public enum BannerPosition {
    273.             BOTTOM,
    274.             TOP
    275.         };
    276.        
    277.         public enum BannerType {
    278.             AUTOMATIC,
    279.             STANDARD,
    280.             THREED
    281.         };
    282.  
    283.         public static bool checkIfBannerExists(BannerPosition bannerPosition) {
    284.             AndroidJavaObject objPosition = getBannerPositionObject (bannerPosition);
    285.             return wrapper.Call<bool> ("checkIfBannerExists", objPosition);
    286.         }
    287.  
    288.         private static AndroidJavaObject getBannerPositionObject(BannerPosition bannerPosition) {
    289.             int pos = 1;
    290.             switch(bannerPosition) {
    291.             case BannerPosition.BOTTOM:
    292.                 pos = 1;
    293.                 break;
    294.             case BannerPosition.TOP:
    295.                 pos = 2;
    296.                 break;
    297.             }
    298.             AndroidJavaObject objPosition = new AndroidJavaObject("java.lang.Integer", pos);
    299.             return objPosition;
    300.         }
    301.  
    302.         private static AndroidJavaObject getBannerTypeObject(BannerType bannerType) {
    303.             int type = 1;
    304.             // Select type
    305.             switch(bannerType) {
    306.             case BannerType.AUTOMATIC:
    307.                 type = 1;
    308.                 break;
    309.             case BannerType.STANDARD:
    310.                 type = 2;
    311.                 break;
    312.             case BannerType.THREED:
    313.                 type = 3;
    314.                 break;
    315.             }
    316.             AndroidJavaObject objType = new AndroidJavaObject("java.lang.Integer", type);
    317.             return objType;
    318.         }
    319.        
    320.         public static void addBanner() {
    321.             addBanner(BannerType.AUTOMATIC, BannerPosition.BOTTOM);
    322.         }
    323.        
    324.         public static void addBanner(BannerType bannerType, BannerPosition bannerPosition) {
    325.             init();
    326.             AndroidJavaObject objPosition = getBannerPositionObject (bannerPosition);
    327.             AndroidJavaObject objType = getBannerTypeObject (bannerType);
    328.             wrapper.Call("addBanner", new []{ objType, objPosition });
    329.         }
    330.        
    331.         public static void removeBanner() {
    332.             removeBanner(BannerPosition.BOTTOM);
    333.         }
    334.        
    335.         public static void removeBanner(BannerPosition bannerPosition) {
    336.             init();
    337.             AndroidJavaObject objPosition = getBannerPositionObject(bannerPosition);
    338.             wrapper.Call("removeBanner", objPosition);
    339.         }
    340.        
    341.         public static void disableReturnAds() {
    342.             enableReturnAds = false;
    343.         }
    344.  
    345.         public static void loadAd() {
    346.             init ();
    347.             wrapper.Call("loadAd");
    348.         }
    349.        
    350.         public static bool showAd() {
    351.             init();
    352.             return wrapper.Call<bool>("showAd");
    353.         }
    354.        
    355.        
    356.         /* Initialization */
    357.         public static void init() {  
    358.             if (wrapper == null) {
    359.                 initWrapper();
    360.             }
    361.         }
    362.        
    363.         private static void initWrapper() {
    364.             AndroidJavaObject jAppId = null;
    365.             AndroidJavaObject jAccId = null;
    366.             AndroidJavaObject jEnableReturnAds = null;
    367.            
    368.             unityClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    369.             currentActivity = unityClass.GetStatic<AndroidJavaObject>("currentActivity");
    370.             wrapper = new AndroidJavaObject("com.startapp.android.unity.InAppWrapper", currentActivity);
    371.            
    372.             if (!initUserData()) {
    373.                 throw new System.ArgumentException("Error in initializing Application ID, Account ID or Return Ads. Please verify your StartAppData.txt file.");
    374.             }
    375.            
    376.             jAppId = new AndroidJavaObject("java.lang.String", applicationId);
    377.             jEnableReturnAds = new AndroidJavaObject("java.lang.Boolean", enableReturnAds);
    378.             if (isAccountIdUsed) {
    379.                 jAccId = new AndroidJavaObject ("java.lang.String", accountId);
    380.                 wrapper.Call("init", jAccId, jAppId, jEnableReturnAds);
    381.             } else {
    382.                 wrapper.Call("init", jAppId, jEnableReturnAds);
    383.             }
    384.         }
    385.        
    386.         private static bool initUserData() {
    387.             bool result = false;
    388.             int assigned = 0;
    389.            
    390.             TextAsset data = (TextAsset)Resources.Load("StartAppData");
    391.             string userData = data.ToString();
    392.            
    393.             string[] splitData = userData.Split('\n');
    394.             string[] singleData;
    395.            
    396.             for (int i = 0; i < splitData.Length; i++) {
    397.                 singleData = splitData[i].Split('=');
    398.                 if (singleData[0].ToLower().CompareTo("applicationid") == 0) {
    399.                     assigned++;
    400.                     applicationId = singleData[1].ToString().Trim();
    401.                 }
    402.                
    403.                 // Account ID is optional
    404.                 if (singleData[0].ToLower().CompareTo("accountid") == 0 || singleData[0].ToLower().CompareTo("developerid") == 0) {
    405.                     isAccountIdUsed = true;
    406.                     accountId = singleData[1].ToString().Trim();
    407.                 }
    408.                
    409.                 if (singleData[0].ToLower().CompareTo("returnads") == 0) {
    410.                     if (singleData[1].ToLower().Equals("false")) {
    411.                         assigned++;
    412.                         disableReturnAds();
    413.                     }
    414.                 }
    415.             }
    416.            
    417.             removeSpecialCharacters ();
    418.             if ((enableReturnAds && assigned == 1) || (!enableReturnAds && assigned == 2)) {
    419.                 Debug.Log ("Initialization successful");
    420.                 Debug.Log ("Application ID: " + applicationId);
    421.                 if (isAccountIdUsed) {
    422.                     Debug.Log ("Account ID: " + accountId);
    423.                 }
    424.                 if (enableReturnAds) {
    425.                     Debug.Log ("Return ads are enabled");
    426.                 }
    427.                 result = true;
    428.             }
    429.             return result;
    430.         }
    431.        
    432.         private static void removeSpecialCharacters() {
    433.             if (applicationId != null && applicationId.IndexOf ("\"") != -1) {
    434.                 applicationId = applicationId.Replace("\"", "");
    435.             }
    436.            
    437.             if (isAccountIdUsed && accountId != null && accountId.IndexOf ("\"") != -1) {
    438.                 accountId = accountId.Replace("\"", "");
    439.             }
    440.         }
    441.  
    442.  
    443.         #endif
    444.     }
    445. }

    I'm pretty stuck and don't know what to do, please help!
     
  2. StartApp

    StartApp

    Joined:
    Aug 27, 2017
    Posts:
    1
    By looking at the script you've attached I can see that it's an old implementation of the unity wrapper.
    Please follow our unity integration guide, and if you have further questions please contact our support via support@startapp.com.
     
  3. Deleted User

    Deleted User

    Guest

    you should change your currently selected platform to android