- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
实际上,我正在尝试制作一个具有免费和付费风格的应用程序。当我使用简单的 findViewById 方法进行绑定(bind)时,它工作正常。但是当我尝试添加 butterknife 时,我拼命坚持使用 butterknife 。
我正在尝试通过 MainActivity.java 文件中的 butterknife 绑定(bind)来绑定(bind)内容(例如 AdMob 或按钮)。但它首先显示空指针异常错误,它显示在 AdMob 对象空指针异常上。我运行干净的项目,然后它显示在 button.onClickListener Nullpointer 异常上。
请帮我...
这是错误:显示 AdMob nullpointerException:
09-08 19:04:30.860 19466-19466/? E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.santossingh.jokeapp.free, PID: 19466
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.santossingh.jokeapp.free/com.santossingh.jokeapp.free.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest)' on a null object reference
at com.santossingh.jokeapp.free.MainActivity.onCreate(MainActivity.java:62)
at android.app.Activity.performCreate(Activity.java:6237)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
at android.app.ActivityThread.-wrap11(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5417)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
09-08 19:04:35.652 837-2192/system_process E/Surface: getSlotFromBufferLocked: unknown buffer: 0xf2cf6c90
09-08 19:04:56.030 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:06:20.986 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:07:41.011 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:09:01.042 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:10:20.982 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:11:46.019 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:13:06.051 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:14:41.018 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
09-08 19:16:06.047 837-853/system_process E/BluetoothAdapter: Bluetooth binder is null
public class MainActivity extends AppCompatActivity implements AsyncResponse{
@BindView(R.id.avi) AVLoadingIndicatorView avLoadingIndicatorView;
@BindView(R.id.button_jokeTeller) Button button_JokeTeller;
@BindView(R.id.instruction_TextView)
TextView instruction;
@BindView(R.id.container) RelativeLayout relativeLayout;
@BindView(R.id.adView) AdView adView;
@BindView(R.id.progressBar) LinearLayout linearLayout;
private InterstitialAd mInterstitialAd;
EndpointsAsyncTask endpointsAsyncTask;
private static final String JOKE_TAG="joke";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
endpointsAsyncTask = new EndpointsAsyncTask(this);
AdRequest adRequestBanner = new AdRequest.Builder().build();
adView.loadAd(adRequestBanner);
mInterstitialAd = new InterstitialAd(this);
mInterstitialAd.setAdUnitId(getString(R.string.interstitial_ad_unit_id));
AdRequest adRequestInterstitial = new AdRequest.Builder().build();
mInterstitialAd.loadAd(adRequestInterstitial);
button_JokeTeller.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showInterstitial();
}
});
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdClosed() {
showProgressbar(true);
showJoke();
}
@Override
public void onAdFailedToLoad(int errorCode) {
Toast.makeText(getApplicationContext(), "Ad failed to load! error code: " + errorCode, Toast.LENGTH_SHORT).show();
}
@Override
public void onAdLeftApplication() {
showProgressbar(true);
Toast.makeText(getApplicationContext(), "Ad left application!", Toast.LENGTH_SHORT).show();
}
@Override
public void onAdOpened() {
Toast.makeText(getApplicationContext(), "Ad is opened!", Toast.LENGTH_SHORT).show();
}
});
}
private void showInterstitial() {
if (mInterstitialAd.isLoaded()) {
mInterstitialAd.show();
}
}
public void showJoke(){
endpointsAsyncTask.execute(getString(R.string.keyword));
}
@Override
public void processFinish(String result) {
Intent intent = new Intent(this, JokeActivity
.class)
.putExtra(JOKE_TAG, result);
showProgressbar(false);
startActivity(intent);
}
public void showProgressbar(boolean a){
if(a==true){
relativeLayout.setVisibility(View.GONE);
linearLayout.setVisibility(View.VISIBLE);
}else{
linearLayout.setVisibility(View.GONE);
relativeLayout.setVisibility(View.VISIBLE);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
android:id="@+id/activity_main"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0e73a6"
android:padding="10dp"
tools:context="com.santossingh.jokeapp.free.MainActivity"
xmlns:ads="http://schemas.android.com/apk/res-auto"
xmlns:app="http://schemas.android.com/apk/res-auto">
<LinearLayout
android:id="@+id/progressBar"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">
<com.wang.avi.AVLoadingIndicatorView
android:id="@+id/avi"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/AVLoadingIndicatorView"
android:visibility="visible"
app:indicatorName="BallPulseIndicator"
/>
</LinearLayout>
<RelativeLayout android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/container">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/instructions"
android:textColor="#fff"
android:id="@+id/instruction_TextView"
/>
<Button android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button_jokeTeller"
android:layout_below="@+id/instruction_TextView"
android:text="@string/button_text"
/>
<!-- view for AdMob Banner Ad -->
<com.google.android.gms.ads.AdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
ads:adSize="BANNER"
ads:adUnitId="@string/banner_ad_unit_id"/>
</RelativeLayout>
</RelativeLayout>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<application>
<activity android:name="com.santossingh.jokeapp.free.MainActivity"
>
<!-- This meta-data tag is required to use Google Play Services. -->
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version"/>
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
<activity
android:name="com.google.android.gms.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
android:theme="@android:style/Theme.Translucent"/>
</manifest>
最佳答案
确保仅在 setContentView 命令 之后添加三个 adMob 行
否则 - 此命令将返回 空 值(value) :
mAdView = **findViewById(R.id.adView);**
setContentView(R.layout.activity_item_list); // <== make asure this comes **BEFORE** the Admob mAdView commands
mAdView = findViewById(R.id.adView);
AdRequest adRequest = new AdRequest.Builder().build();
mAdView.loadAd(adRequest);
关于android - 如何使用 Butterknife 解决 NullPointerException void com.google.android.gms.ads.AdView.loadAd(com.google.android.gms.ads.AdRequest),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401662/
我正在尝试使用 Butter Knife这些天在Android Studio,但它让我遇到了一些奇怪的问题。我曾经在eclipse上尝试过 butterknife ,效果很好。我不知道我是否在 And
Butterknife 8.8.0 引入了新的处理器选项 butterknife.debuggable ( link to changelog )。默认情况下,这是真的。在我的 build.gradl
当我尝试在我的 Android 项目中使用 Butterknife 时出现以下异常: 05-20 14:08:41.221 3296-3296/com.fedorparetsky.parcare E/
每次尝试运行我的项目时,我都会遇到一个问题,即找不到 ID 为“com.jakewharton.butterknife”的错误插件。出现有人能告诉我这段代码是怎么回事吗??我被卡住了,感谢任何帮助这是
我想在我的项目中使用 butterknife 。我按照 butterknife 教程做了一切。 但是当我为 View 设置任何东西(setText、setClickListener ...)时,我得到
如果已在 onCreate View 上绑定(bind) View ,但 onclick 不起作用。 这是我的代码: @Override public View onCreateView(Layout
我正在尝试使用 butterknife 。但我收到错误“无法解析符号'**ButterKnife'”。我尝试手动导入 butterknife.ButterKnife 但出现了相同的错误我修改了 gra
我已经安装了 ButterKnife 我的 build.gradle 看起来像这样: dependencies { compile fileTree(dir: 'libs', include:
在我的代码中,如果我想使用 butterknife,应该如何更改? Layout list_item是listview,所以我可以生成butterknife注入(inject),但我不知道如何修复其他
我正在尝试在我的 Android 项目中使用 ButterKnife。 我有一个Activity 实现了一个Interface。我正在使用 MVP 模式。我正在尝试从 EditText 获取文本,但它
我在考虑用Butter knife for android,好像简化代码很厉害 问题是我正在做游戏,所以性能和 apk 大小对我来说非常重要 我的问题是: butterknife 只在编译时使用还是在
我在当前项目中使用 Butterknife 库时遇到一些问题。我目前正在优化手机和平板电脑的项目,例如,有时两者的布局文件之间存在细微差异 布局/layout_example.xml l
我将 @OnClick 监听器设置为列表项中的 View 。在某些情况下,我需要禁用此 View 的监听器,以便 ListView 可以处理点击(应调用 OnItemClickListener),然后
我正在尝试实现 Butterknife进入我的android工作室项目。 但是,当我这样做时,我在 @InjectView 上收到错误“无法解析符号 InjectView”。 我没有成功实现 Butt
我已经创建了一个基类 recyclerview 并且我的其他类正在扩展基类。我已经实现了 butterknife .然而,当其他类扩展基类时,我得到的 View 为空。 下面是我的基类 public
我看到了 Butterknife 教程,它指出: @BindViews({android.R.id.text1, android.R.id.text2}) TextView textEmail,des
昨天我正在使用 butterknife 处理我正在进行的项目。但突然它停止工作了。ButterKnife.bind(this) 无法绑定(bind) View ,因此所有 View 都是抛出 Null
我是 Java 和 Butterknife 的新手,所以我遇到了一些麻烦。在此代码中,该函数正在记录登录按钮的工作情况,但实际上我被卡住了,因为我看不到有关我的应用程序错误或此按钮日志的任何信息。我真
使用 Butterknife 我有例如以下代码: @InjectView(R.id.foo) View vFoo; 但是当我运行 lint 时,我收到以下警告: Field is never assi
为什么 RecyclerView 适配器不能与 ButterKnife 一起使用? 它适用于 findViewById 但不适用于 ButterKnife 适配器类 public class Cate
我是一名优秀的程序员,十分优秀!