Unity3d Android加入广告和调用Android代码的方法。详细讲解!
来源:互联网 发布:java c s 开发框架 编辑:程序博客网 时间:2024/06/17 14:23
首先,庆祝一下,我开始自己写博客了哈哈。这是我的第一篇文章。最近在研究如何加入广告,终于成功了。在这里分享一下我的技术。哈哈。
好,那我们现在就开始加入广告,我们以有米的广告为例。首先,到有米官网注册一个开发者的帐号,创建一个应用来获取开发者密钥和应用密钥。下载sdk包,现在出了一个组合的包。
1. 打开eclipse,创建一个android工程,这里要注意一下,创建向导中,应用的名称和包名一定要和你unity中的是一样的,不然打包后是没法运行的。在这里,我已一个名为ad的应用为例,他的包名为com.spinach.ad我们就应该这样做:
之后,点击下一步
2.这里按照这样设置,首先创建activity是肯定的。至于创建图标,这个是后来可以改的,但是我推荐在这里设置好,因为这样很方便。
注意:当我们完成后,你在unity中设置图标将是无效的。打包后应用的图标将会按照android项目中设置的图标来设置。原因很简单,unity会按照你导入的manifest来修改打包的应用的manifest,而不会在是自动生成一个manifest文件。后面的可以一直下一步,如果个人有其他需要,可以自己改。
3.导入包。我们需要导入两个包(根据你想实现的功能来定,我们以有米的sdk包为例,有米sdk为一个包)。还要导入一个unity的接口包,这个包叫classes,jar
在Mac中,他的目录是Unity.app/Content/PlaybackEngines/AndroidPlayer/bin
Windows中目录在editer文件夹中。
为什么导入这个包?
这个包是unity给android提供的接口,通过这个,我们可以实现android与unity的通信。
接下来,导入有米的sdk包。
导入包的方式:拖动包到eclipse的android项目中的libs文件夹中,然后右键,Bulid Path--Add to build path.
4.现在我们来写代码。
package com.spinach.ad;import android.os.Bundle;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;import android.app.Activity;import net.youmi.android.AdManager;import net.youmi.android.banner.AdSize;import net.youmi.android.banner.AdView;import net.youmi.android.spot.SpotManager;import com.unity3d.player.UnityPlayerActivity;public class MainActivity extends UnityPlayerActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);AdManager.getInstance(this).init("*********","**********",false); LinearLayout layout=new LinearLayout(this); addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.FILL_PARENT)); AdView adView = new AdView(this,AdSize.SIZE_320x50); LayoutParams params = new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT); layout.addView(adView, params); }}为什么?
为什么要继承UnityPlayerActivity类?
UnityPlayerActivity类就是unity提供的接口,我们要在这里使用。
至于代码的写法,我想会android开发的应该都能理解。在这里不多说了。
提示:不要忘记改写manifest。按照你需要的功能,例如我们现在用的是有米广告那就按照有米的文章在manifest中添加代码。
6.打包成jar文件。首先,Build一下android项目,在build前,先Clean一下,这两个选项都在eclipse的project选项卡中。现在,用finder(我的电脑)打开当前的项目。找到bin文件夹,找到classes。之后打开你能看见的文件夹。这些文件夹的名字就是你的包名。例如,这里的包名是com.spinach.ad,那么文件夹就是com>>spinach>>ad。
在Mac中,打开终端,cd到classes文件夹。注意,一定要cd到classes。执行打包命令。
jar -cvf class.jar *这句话,将当前文件夹下的所有class文件打包成jar。执行后,你会看见一个jar文件,叫class。解压一下这个,你会看见一个和包名相同的目录。如我的是com>>spinach>>ad。在jar(现在解压了,可以理解成rar,或者zip。但不要忘了,他依然是jar)的根目录中,(就是有你包名的第一段的文件夹名)还会有个meta-data。
确认jar中的文件顺序和你的包名一样时。进行下一步。
提示:如果包名不一样,则应用在运行时,会崩溃。当你发现包名和文件夹的顺序不一样时,请确认你在终端cd到的是classes文件夹。在windows中的打包方法,可以在网上搜一下。过几天我会补上。
7. 打开unity3d。在你的项目中,新建一个文件夹,叫Plugins,在Plugins中,新建一个叫Android的文件夹。(不要改文件夹名)
在Android文件夹中,新建一个叫bin的文件夹。把刚才打包的class.jar放进去。之后,把刚才那个android项目中的AndroidManifest,libs,res,proguard-project,project.properties.和其他你需要的东西。放进去。但是注意把libs中的classes.jar(unity3d的接口)删除,如果有这个的话,build的时候,会和unity的冲突。
。
8. OK,现在可以build了,一定注意unity中设置的包名和android项目中的一样。
过几天我再写如果调用android的函数,可以实现显示插播广告。
如果觉得这个文章对你有帮助,请你在你的手机上,下载我的应用(http://as.baidu.com/a/item?docid=3056842&pre=web_am_se)。帮我点几个广告。
。有米的广告只有在安装后在生效。
谢谢你的支持。
附上我的AndroidManifest。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.spinach.bsg" android:versionCode="1" android:versionName="1.0.1" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="8" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name="com.spinach.bsg.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="net.youmi.android.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation" android:theme="@android:style/Theme.Light.NoTitleBar" ></activity><service android:name="net.youmi.android.AdService" android:exported="false" ></service><receiver android:name="net.youmi.android.AdReceiver" > <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <data android:scheme="package" /> </intent-filter></receiver> </application><uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.READ_PHONE_STATE"/><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!--以下两个为可选权限--> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"/><uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/></manifest>
- Unity3d Android加入广告和调用Android代码的方法。详细讲解!
- android 加入广告的方法
- android 加入广告赚钱的方法
- unity3d android工程加入最新的有米广告
- Unity3d通过苹果和google两种方法加入广告
- Unity3d通过苹果和google两种方法加入广告
- Unity3D调用Android Java代码
- Unity3D调用Android Java代码
- Unity3d和Android的互相调用(一)
- Unity3d和Android的互相调用(二)
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3D 调用Android原生方法
- Unity3d调用android中的方法
- android开发基于cocos2dx加入google admob广告方法
- 如何:在Android应用中加入广告方法步骤!
- unity3d调用Android的java代码实现地图的连接
- C#利用word2007插件实现word转pdf
- 操作系统内存管理与简单分配器实现
- WPS for Linux beta1 正式发布公测
- 二叉树遍历
- Windows驱动中的Crash回调
- Unity3d Android加入广告和调用Android代码的方法。详细讲解!
- 游戏后台开发九问--linux平台
- Java学习笔记:for-each增强for循环
- 通过扩展 Rational Functional Tester 对 Adobe Flex 或 Flash 应用程序进行测试
- Linux命令学习手册-objcopy命令
- 手风琴特效
- 我编程,我快乐:程序员职业规划之道(一)
- 二叉树前序、中序、后序遍历相互求法
- Ubuntu 12.04安装Ubuntu Tweak 0.7.0指南(转载)