Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将AdView添加到LinearLayout时,Android AdMob AIR本机扩展崩溃_Android_Flash_Admob_Android Resources_Air Native Extension - Fatal编程技术网

将AdView添加到LinearLayout时,Android AdMob AIR本机扩展崩溃

将AdView添加到LinearLayout时,Android AdMob AIR本机扩展崩溃,android,flash,admob,android-resources,air-native-extension,Android,Flash,Admob,Android Resources,Air Native Extension,我正在创建一个AIR本机扩展来集成AdMob 我遵循了此处介绍的使用外部资源的指导原则: 并将google的adMob jar打包到我的本机扩展jar中,如下所述: 我有一个NewAdFunction类,它实现了FREFunction,并由actionscript端调用。NewAdFunction.call函数基本上包含以下内容:在我的实际代码中,我有必要的try捕获 Intent intent = new Intent(context.getActivity(), AdMobActivity.

我正在创建一个AIR本机扩展来集成AdMob

我遵循了此处介绍的使用外部资源的指导原则:

并将google的adMob jar打包到我的本机扩展jar中,如下所述:

我有一个NewAdFunction类,它实现了FREFunction,并由actionscript端调用。NewAdFunction.call函数基本上包含以下内容:在我的实际代码中,我有必要的try捕获

Intent intent = new Intent(context.getActivity(), AdMobActivity.class);
layoutID = context.getResourceId("layout.adlayout");
intent.putExtra("layoutID", layoutID);
context.getActivity().startActivity(intent);
在上面的代码中,adlayout是位于res/layout中的xml。我将整个res文件夹打包到最后一个jar中,并在testair项目的xml中包含以下代码

<application android:enabled="true" android:debuggable="true">
            <activity android:name="com.mycompany.admob.AdMobActivity"></activity>
</application>

我所能想到的就是layout可以为null,但我添加了一个跟踪函数,它不是null。

我发现layout变量实际上是null。我没有使用xml创建布局,而是以编程方式创建布局,如下所示:

public FREObject call(FREContext context, FREObject[] args) {
    AdView adView = new AdView(context.getActivity(), AdSize.BANNER, NewAdFunction.developerId);
    Activity activity = context.getActivity();

    ViewGroup viewGroup = (ViewGroup)activity.findViewById(android.R.id.content);
    viewGroup = (ViewGroup)viewGroup.getChildAt(0);
    LinearLayout layout = new LinearLayout(activity);
    viewGroup.addView(layout, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    adView.setVisibility(View.VISIBLE);
    layout.addView(adView, params);
}
这是我发现的在AIR本机扩展中添加视图的最佳方法

public FREObject call(FREContext context, FREObject[] args) {
    AdView adView = new AdView(context.getActivity(), AdSize.BANNER, NewAdFunction.developerId);
    Activity activity = context.getActivity();

    ViewGroup viewGroup = (ViewGroup)activity.findViewById(android.R.id.content);
    viewGroup = (ViewGroup)viewGroup.getChildAt(0);
    LinearLayout layout = new LinearLayout(activity);
    viewGroup.addView(layout, new FrameLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);

    adView.setVisibility(View.VISIBLE);
    layout.addView(adView, params);
}