- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的堆栈跟踪:
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/
这是我的堆栈跟踪: 08-16 10:23:40.006 19022-19022/com.world.innov.ebilling E/AndroidRuntime﹕ FATAL EXCEP
我是一名优秀的程序员,十分优秀!