Jump to content

[TOPIC: topicViewTemplate]
[GLOBAL: userSmallPhoto]
Photo

Appodeal + Amazon = app won't run due to "Google Play Services"
Started by firerabbit.info Nov 20 2018 03:20 PM

36 replies to this topic
appodeal amazon corona google play services
[TOPIC CONTROLS]
Page 1 of 2 1 2
[/TOPIC CONTROLS]
[modOptionsDropdown]
[/modOptionsDropdown]
[reputationFilter]
[TOPIC: post.html]
#1

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Hi folks.

 

I've recently implemented Appodeal but as a result I am no longer able to build working apps for Amazon, due to a "Corona: Developer Error", notifying that Google Play Services has been included with a non-Google target (Amazon).

 

Google Play Services is not in the build file.  When I disable Appodeal the build works on Amazon as expected.  

 

I am using the BETA version of the Appodeal plugin.

 

Here's the error: https://photos.app.goo.gl/yVKdF9Z6i5HijEHq6

settings = 
{

	splashScreen = { enable = false  },
	
	orientation = 
	{
		default = "landscapeRight",
		supported = 
		{
			"landscapeLeft", 
			"landscapeRight",
		},
	},
	
	excludeFiles  = {
		-- CARNAGE WANTS does not want any OGG files for market (amazon) as they were created for windows support only.... thus let's save the app size. We also only want the icons for our market 
		all = { "*.ogg" , "Launch.png" , "Launch@2x.png" , "Launch@3x.png" , "FireRabbitLaunchScreen.storyboardc" , "Images.xcassets" , "Icon-40.png" , "Icon-58.png" , "Icon-76.png" , "Icon-80.png" , "Icon-87.png" , "Icon-120.png" , "Icon-152.png" , "Icon-167.png" , "Icon-180.png" , "Icon-1024.png" , "carnageflexibles/horseHUD*" , "carnageflexibles/swinventory*"  }
	},	
	
	plugins =
	{
		["CoronaProvider.native.popup.social"] =
		{
			publisherId = "com.coronalabs",
		},
		
		["plugin.zip"] =
		{
			publisherId = "com.coronalabs"
		},
		
		["plugin.CoronaSplashControl"] =
		{
			publisherId = "com.coronalabs"
		},
		
		-- Base
		['plugin.appodeal.base']         = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.AmazonAds']    = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.GoogleAdMob']  = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.TwitterMoPub'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.StartApp']     = { publisherId = 'com.coronalabs' },
		
		-- Interstitial
		['plugin.appodeal.AdColony']     = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.AppLovin']     = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Chartboost']   = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.InMobi']       = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.IronSource']   = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Mobvista']     = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.MyTarget']     = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.MillenialMedia'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Ogury']        = { publisherId = 'com.coronalabs' },
		
		-- Rewarded Video
		['plugin.appodeal.Unity']       = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Vungle']      = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.Tapjoy']      = { publisherId = 'com.coronalabs' },
		
		["plugin.iap_badger"] =
		{
			publisherId = "uk.co.happymongoose",
		},
		
		["plugin.amazon.iap"] =
		{
			publisherId = "com.coronalabs",
		},
		
	},
	
	android =
	{
	
		usesPermissions = {
			"android.permission.INTERNET",		
			"android.permission.ACCESS_NETWORK_STATE",	
			"android.permission.ACCESS_COARSE_LOCATION",	
			"android.permission.GET_ACCOUNTS",	
		},
	},
	
}


I saw others having this issue that resolved it by removing Flurry and Facebook, which I have, but it does nothing.

 

Please assist.

 

Cheers,

Chris



[TOPIC: post.html]
#2

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Just tried the non-BETA version and same issue.

 

Which of these plugins is using Google Play Services?  I thought Appodeal was advertised by Corona as fully supporting Amazon?

 

Cheers,

Fire



[TOPIC: post.html]
#3

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

I've removed all Appodeal plugins but the base ones, and still no luck on Amazon.

 

Using build Corona build 3428, btw.

 

Here's the build settings that doesn't work.  Remember that if I remove reference to Appodeal entirely it DOES work.

settings = 
{

	splashScreen = { enable = false  },
	
	orientation = 
	{
		default = "landscapeRight",
		supported = 
		{
			"landscapeLeft", 
			"landscapeRight",
		},
	},

	excludeFiles  = {
		-- CARNAGE WANTS does not want any OGG files for market (amazon) as they were created for windows support only.... thus let's save the app size. We also only want the icons for our market 
		all = { "*.ogg" , "Launch.png" , "Launch@2x.png" , "Launch@3x.png" , "FireRabbitLaunchScreen.storyboardc" , "Images.xcassets" , "Icon-40.png" , "Icon-58.png" , "Icon-76.png" , "Icon-80.png" , "Icon-87.png" , "Icon-120.png" , "Icon-152.png" , "Icon-167.png" , "Icon-180.png" , "Icon-1024.png" , "carnageflexibles/horseHUD*" , "carnageflexibles/swinventory*"  }
	},	
	
	plugins =
	{
		["CoronaProvider.native.popup.social"] =
		{
			publisherId = "com.coronalabs",
		},
		
		["plugin.zip"] =
		{
			publisherId = "com.coronalabs"
		},
		
		["plugin.CoronaSplashControl"] =
		{
			publisherId = "com.coronalabs"
		},
		
		-- Base
		['plugin.appodeal.beta.base']         = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.beta.AmazonAds']    = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.beta.GoogleAdMob']  = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.beta.TwitterMoPub'] = { publisherId = 'com.coronalabs' },
		['plugin.appodeal.beta.StartApp']     = { publisherId = 'com.coronalabs' },
		

		["plugin.iap_badger"] =
		{
			publisherId = "uk.co.happymongoose",
		},
		
		-- IN-APP PURCHASES (AMAZON)
		["plugin.amazon.iap"] =
		{
			publisherId = "com.coronalabs",
		},
	
	},
	
	android =
	{
	
		usesPermissions = {
			"android.permission.INTERNET",				
			"android.permission.ACCESS_NETWORK_STATE",	
			"android.permission.WRITE_EXTERNAL_STORAGE",	
			"android.permission.ACCESS_COARSE_LOCATION",	
			"android.permission.GET_ACCOUNTS",	
		},
	},

}




[TOPIC: post.html]
#4

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 24,997 posts
  • Corona SDK

Perhaps this is the culprit:

 

        ['plugin.appodeal.beta.GoogleAdMob'] = { publisherId = 'com.coronalabs' },



[TOPIC: post.html]
#5

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

This set up worked for me as a couple of weeks ago:

--Appodeal Amazon
		['plugin.appodeal.base'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true }
        },

        ['plugin.appodeal.AmazonAds'] = { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true } 
        },

        ['plugin.appodeal.TwitterMoPub'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true}
        },
        
        ['plugin.appodeal.StartApp'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true }
        },

        -- End of Base

        ['plugin.appodeal.InMobi'] = 
        { 
           publisherId = 'com.coronalabs',
           supportedPlatforms = {["android-kindle"] = true}  
        },

        ['plugin.appodeal.AppLovin'] =
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.MillenialMedia'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.AdColony'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.Chartboost'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.IronSource'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true}  
        },

  • firerabbit.info likes this

[TOPIC: post.html]
#6

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Perhaps this is the culprit:

 

        ['plugin.appodeal.beta.GoogleAdMob'] = { publisherId = 'com.coronalabs' },

 

Thanks, I'll try it, but your own documentation (https://docs.coronalabs.com/plugin/appodeal/) states that the base section must be kept, and Appodeal STRONGLY recommends against disabling AdMob as they are tightly partnered with them and use them to deliver the majority of the ads.



[TOPIC: post.html]
#7

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

 

This set up worked for me as a couple of weeks ago:

--Appodeal Amazon
		['plugin.appodeal.base'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true }
        },

        ['plugin.appodeal.AmazonAds'] = { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true } 
        },

        ['plugin.appodeal.TwitterMoPub'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true}
        },
        
        ['plugin.appodeal.StartApp'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true }
        },

        -- End of Base

        ['plugin.appodeal.InMobi'] = 
        { 
           publisherId = 'com.coronalabs',
           supportedPlatforms = {["android-kindle"] = true}  
        },

        ['plugin.appodeal.AppLovin'] =
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.MillenialMedia'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.AdColony'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.Chartboost'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true} 
        },

        ['plugin.appodeal.IronSource'] = 
        { 
            publisherId = 'com.coronalabs',
            supportedPlatforms = {["android-kindle"] = true}  
        },

 

Thanks, will give this a try!  It was actually your post that I was referencing when I said someone had success removing Facebook and Flurry on Amazon :)



[TOPIC: post.html]
#8

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

 

This set up worked for me as a couple of weeks ago:


 

Hey, did you have to disable the ads on the Appodeal interface, or during init, for plugins you did NOT include?  For example, did you have to disable Facebook ads in your init code or on the Appodeal website because you did not include the Facebook plugin in your build.settings?



[TOPIC: post.html]
#9

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Perhaps this is the culprit:

 

        ['plugin.appodeal.beta.GoogleAdMob'] = { publisherId = 'com.coronalabs' },

 

Hi Rob.  Still didn't work.  Something else is including it.



[TOPIC: post.html]
#10

Rob Miracle

[GLOBAL: userInfoPane.html]
Rob Miracle
  • Moderator

  • 24,997 posts
  • Corona SDK

Let me try and explain.

 

You have to have the base Appodeal plugin.  It has function calls that the API calls use. You must have this.

 

If you want to use AdMob, for instance, you have to include the AdMob Base. Then if you only want AdMob rewarded video, you can skip the banner and interstitial entries and only include the rewarded video plugin. Those ad type specific plugins depend on the provider's base. It's something like this:

appodeal base
      admob base
            admob banner
            admob interstitial
            admob rewarded video
      inmobi base
            inmobi banners etc.

You can see how the dependencies cascade from each other.  These also support the supportedPlatforms entries so you can conditionally load them based on platform:

 ['plugin.appodeal.beta.GoogleAdMob'] = { publisherId = 'com.coronalabs' , supportedPlatforms = "android" },

Rob



[TOPIC: post.html]
#11

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Let me try and explain.

 

You have to have the base Appodeal plugin.  It has function calls that the API calls use. You must have this.

 

If you want to use AdMob, for instance, you have to include the AdMob Base. Then if you only want AdMob rewarded video, you can skip the banner and interstitial entries and only include the rewarded video plugin. Those ad type specific plugins depend on the provider's base. It's something like this:

appodeal base
      admob base
            admob banner
            admob interstitial
            admob rewarded video
      inmobi base
            inmobi banners etc.

You can see how the dependencies cascade from each other.  These also support the supportedPlatforms entries so you can conditionally load them based on platform:

 ['plugin.appodeal.beta.GoogleAdMob'] = { publisherId = 'com.coronalabs' , supportedPlatforms = "android" },

Rob

 

Thanks for explanation.  Can you please assist in determining which of Corona's Appodeal plugins that we include in our build.settings is including the Google Play Services plugin, so that I can publish to Amazon targetting Kindle devices?  It wasn't GoogleAdMob.

 

Is there somewhere in Corona documentation where this is detailed?  We should know when we reference a plugin what other plugins it may reference.  We can see this in Unity in the manifest.  Is there a way of determining this with Corona?



[TOPIC: post.html]
#12

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Rob, this is a Corona plugin issue.  I see others on the forum are having the same issue.

 

This build.settings does NOT work and shows the Corona error (only Appodeal base included):

	plugins =
	{
		["CoronaProvider.native.popup.social"] =
		{
			publisherId = "com.coronalabs",
		},
		
		["plugin.zip"] =
		{
			publisherId = "com.coronalabs"
		},

		["plugin.CoronaSplashControl"] =
		{
			publisherId = "com.coronalabs"
		},

		-- Base
		['plugin.appodeal.beta.base']         = { publisherId = 'com.coronalabs' },

		-- IAP Badger
		["plugin.iap_badger"] =
		{
			publisherId = "uk.co.happymongoose",
		},
		
		-- IN-APP PURCHASES (AMAZON)
		["plugin.amazon.iap"] =
		{
			publisherId = "com.coronalabs",
		},
	},

This build.settings DOES work on Amazon (same as above, but Appodeal base is commented out):

	plugins =
	{
		["CoronaProvider.native.popup.social"] =
		{
			publisherId = "com.coronalabs",
		},
		
		["plugin.zip"] =
		{
			publisherId = "com.coronalabs"
		},

		["plugin.CoronaSplashControl"] =
		{
			publisherId = "com.coronalabs"
		},

		-- Base
		--['plugin.appodeal.beta.base']         = { publisherId = 'com.coronalabs' },

		-- IAP Badger
		["plugin.iap_badger"] =
		{
			publisherId = "uk.co.happymongoose",
		},
		
		-- IN-APP PURCHASES (AMAZON)
		["plugin.amazon.iap"] =
		{
			publisherId = "com.coronalabs",
		},
	},

Appodeal plugin does not work on Amazon, with Corona SDK build 2018.3428.  Beta or not.

 

Can you acknowledge and let us know if there is a solution, workaround, or fix in progress?



[TOPIC: post.html]
#13

karpovpw

[GLOBAL: userInfoPane.html]
karpovpw
  • Contributor

  • 257 posts
  • Corona Staff

Hi there, guys!

When Appodeal first introduced their Android modular SDK, Amazon store build support was suspended. As of right now, there is no Amazon store Appodeal SDK modular build, so it's not a Corona plugin issue, sadly, we can't fully support Amazon store builds on a modular plugin, since Appodeal doesn't have an SDK for that atm.

Appodeal team is already working on Amazon store Appodeal SDK modular build for quite some time, but they can't give an ETA for now, I will update you on this.

Since some users gave a positive feedback on building for Amazon store just fine, we left that ability, instead of just putting a stub for Amazon builds, saying something like "You can't build for Amazon store for now" and calling it a day. Right now Corona Appodeal modular plugin doesn't support Amazon store builds, since we don't even have an Appodeal SDK for that.

As of right now, we are trying to create some kind of a temporary solution, while Appodeal is working on an SDK, but don't quote me on that. There's not much we can do without Appodeal SDK for Amazon, as I've said.

 

 I thought Appodeal was advertised by Corona as fully supporting Amazon?

Can I ask a link, where you read it? Not to be picky, but like, since Appodeal SDK for Amazon is not ready yet, we can't provide support for Corona Appodeal modular plugin builds for Amazon store. Advertising that you've seen is misleading and we should remove it. But I don't remember Corona advertising it in the first place, hence why a question about where did you got that info. Thanks in advance!



[TOPIC: post.html]
#14

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

 

 

Since some users gave a positive feedback on building for Amazon store just fine, we left that ability, instead of just putting a stub for Amazon builds, 

 

Please don't stub it out. I have been successful in building it most of the time that I have tried. It isn't usually easy and sometimes it does not make sense why it works, but I have been able consistently.

 

I'll try today and see if I can make it work. Maybe it broke with a recent change. But it doesn't look like Corona has done in a change in recent months.



[TOPIC: post.html]
#15

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Thanks for update, karpovpw.

 

We very much want this plugin to work on Amazon.  Clearly it does not with recent builds.

 

We contacted Appodeal and they're going to give us an update Monday.  

 

Corona is marketed as a cross-platform/market solution, so if a plugin doesn't work on a market supported by Corona it should be indicated in the documentation.  I would not have spent a week adapting our own game engines to use the Appodeal plugin if I had known Amazon was not supported.  IMO that's a big drawback that people should know before getting to the point they are building the app and testing it on device.  This goes for any plugin, not just Appodeal.  

 

Count me as a +1 looking for Amazon support with Appodeal.  If there's something we can do to help make this happen please let us know.



[TOPIC: post.html]
#16

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

Rabbit you said you do native builds?



[TOPIC: post.html]
#17

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

We build for iOS, GooglePlay, and Amazon (including on Fire/Kindle devices).  Is targeting Kindle/Fire what you mean by native?

 

We used to build for Windows and Samsung but they're not worth the time anymore.



[TOPIC: post.html]
#18

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

I mean do you use the simulator to build or you Android Studio?



[TOPIC: post.html]
#19

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Simulator.  Didn't know I could use Android Studio!



[TOPIC: post.html]
#20

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

Yes, you can build with Android Studio. As a workaround let me see if I can get it to build with Appodeal on Amazon. I'll report back. It is sort of a pain, but once you have it set up it works every time.



[TOPIC: post.html]
#21

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

I was able to build and run a corona test app with Android Studio. No problems. A native build is not the easiest thing to do. You have to configure each plugin you use. In the case of Appodeal you'll have to configure each of the networks that you decide to add. 

 

Attached File  appodealOnAmazon.png   115.84KB   0 downloads



[TOPIC: post.html]
#22

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Does this indicate a Corona build issue, as you have successfully built the Appodeal plugins natively, targetting the Amazon market?



[TOPIC: post.html]
#23

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

I did a native build of one of my apps with the exact same plugins that Corona uses to build from the simulator. I didn't create my own plugins. The only difference is that I did not add the dependency for Google Play Services from this plugin:

['plugin.appodeal.beta.base']         = { publisherId = 'com.coronalabs' },

The process is sort of simple but tedious:

 

1. Copy the entire "Apps" folder from the native sample.

2. Replace the corona folder in this folder with your own app folder. Make sure to keep the name as Corona.

3. From within Android Studio open the project in the Android studio.

4. Open a command line and navigate to the android studio and run the .sh or .bat script. This will download all the plugins.

5. Go to the plugin folder. Copy the jars in each folder to the libs folder in Android folder.

6. For all the pure lua plugins copy the lua files into a "plugin" folder in the corona folder.

7. Each plugin that downloads comes down with a "metadata.lua". Here you'll see the depended .jar (which you have to copy to the libs folder), permissions, extra activities and other random manifest stuff (that you copy to the manifest file). If permission or activity is a duplicate don't copy it again.

8. After that, all you have left is to modify the manifest with your app name, supported version and build.



[TOPIC: post.html]
#24

agramonte

[GLOBAL: userInfoPane.html]
agramonte
  • Contributor

  • 859 posts
  • Corona SDK

So to answer your question it is not a build issue, it is a problem with how the plugin for Appodeal is currently built. And the word problem might be a strong word, Appodeal might have their reasons for including that dependency that might not have come up with my limited testing.



[TOPIC: post.html]
#25

firerabbit.info

[GLOBAL: userInfoPane.html]
firerabbit.info
  • Contributor

  • 155 posts
  • Corona SDK

Thanks for the great info, agramonte.  

 

Is this an issue with the Appodeal plugin, or Corona's build system then?  Appodeal owns Corona so at some point I wish they would just resolve the issue between them.  Seems like they are two different teams when I am communicating with them...




[topic_controls]
Page 1 of 2 1 2
 
[/topic_controls]

Also tagged with one or more of these keywords: appodeal, amazon, corona, google, play, services