gpt4 book ai didi

android - Android Studio Build 22.0.1 中 AndroidImageSlider DefaultSliderView 的空指针异常

转载 作者:行者123 更新时间:2023-11-29 00:08:29 25 4
gpt4 key购买 nike

这是我的堆栈跟踪:

08-16 10:23:40.006  19022-19022/com.world.innov.ebilling     E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.world.innov.ebilling, PID: 19022
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.world.innov.ebilling/com.world.innov.ebilling.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Bundle.putString(java.lang.String, java.lang.String)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.os.Bundle.putString(java.lang.String, java.lang.String)' on a null object reference
at com.world.innov.ebilling.MainActivity.onCreate(MainActivity.java:52)
at android.app.Activity.performCreate(Activity.java:5990)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2390)          at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5257)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

这是我的 Activity :

import java.util.HashMap;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.BaseSliderView.OnSliderClickListener;
import com.daimajia.slider.library.SliderTypes.DefaultSliderView;


import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.Window;
import android.widget.Button;


public class MainActivity extends Activity implements OnSliderClickListener {
public static final String MY_PREFS_NAME = "MyPrefsFile";
private SliderLayout mDemoSlider;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);


mDemoSlider = (SliderLayout) findViewById(R.id.slider);

HashMap<String, Integer> file_maps = new HashMap<String, Integer>();

file_maps.put("A", R.drawable.invoicebyhand);
file_maps.put("B", R.drawable.invoicebymobile);
file_maps.put("C", R.drawable.analysis);

for (String name : file_maps.keySet()) {
DefaultSliderView defaultSliderView = new DefaultSliderView(this);
// initialize a SliderLayout
defaultSliderView
.description(name)
.image(file_maps.get(name))
.setScaleType(BaseSliderView.ScaleType.Fit)
.setOnSliderClickListener(this);

//add your extra information
defaultSliderView.getBundle()
.putString("extra", name);

mDemoSlider.addSlider(defaultSliderView);
}
mDemoSlider.setPresetTransformer(SliderLayout.Transformer.RotateUp);
mDemoSlider.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
mDemoSlider.stopAutoCycle();


SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String pin = prefs.getString("pin", "");

if (pin.equals("")) {
disableLetsGo();
Intent i = new Intent(this, TOCActivity.class);
startActivity(i);
} else {
disableSignUp();
}

}

@Override
public void onSliderClick(BaseSliderView slider) {
// TODO Auto-generated method stub

}
}

我的问题是“任何人都可以看到为什么我在第 52 行收到空指针异常,因为我猜 defaultSliderView”?

line 52 is : defaultSliderView.getBundle()
.putString("extra", name);

我正在使用带有 22.0.1 buildtoolversion 的 android studio。我在 eclipse 上做这个项目时没有遇到这个问题。这是我第一次使用 android studio。我成功地完全迁移了项目,但出现运行时异常。我正在使用 daimajia 的 androidimageslider。

更新:defaultSliderView 正在返回空包(感谢@HariRam)。我应该如何进行,或者有什么东西可以替代 bundle 吗?

更新 2:我删除了第 52 行。它现在可以工作了。

最佳答案

defaultSliderView.getBundle()

正在返回 null,所以在这里您试图将值放入 null 包中。因此,您的应用程序崩溃了。

defaultSliderView.getBundle() .putString("extra", name);

删除此行不会对您的应用产生任何不良影响,因此您应该将其删除。

关于android - Android Studio Build 22.0.1 中 AndroidImageSlider DefaultSliderView 的空指针异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32038155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com