У меня эта ошибка в Android versions 4.+
(особенно в 4.1 и 4.3), в то время как в других версиях Android нет. Действия и библиотеки (я использую GooglePlayServices
и YouTubePlayerAPI
) указаны в файле Manifest.xml и в файле gradle.java.lang.RuntimeException: Невозможно запустить активность ComponentInfo в версиях android 4. +
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.test/com.app.test.DetailActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
at android.app.ActivityThread.access$600(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5039)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.app.test.content.FirstFragment.onCreate(FirstFragment.java:151)
at android.support.v4.app.Fragment.performCreate(Fragment.java:1763)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:913)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1126)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
at android.support.v4.app.FragmentManagerImpl.dispatchCreate(FragmentManager.java:1912)
at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:266)
at com.app.test.DetailActivity.onCreate(DetailActivity.java:73)
at android.app.Activity.performCreate(Activity.java:5104)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
... 11 more
Код из фрагмента, где ошибка вызвана (строка 151) является метод OnCreate() фрагмента присоединен:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
if(getArguments() != null && getArguments().containsKey(ARG_ITEM_ID)) {
// Loads the content specified by the fragment arguments.
mItem = Items.getInstance().getMap().get(getArguments().getString(ARG_ITEM_ID));
}
// Initialize mCustomMediaPlayer
mCustomMediaPlayer = new CustomMediaPlayer(getActivity().getApplicationContext(), mItem.getTrackId());
}
Где заостренные линии 151:
mCustomMediaPlayer = new CustomMediaPlayer(VillancicosActivity.getContext(), mItem.getTrackId());
CustomMediaPlayer Класс:
public class CustomMediaPlayer {
/////// Constants
private static final String TAG = "CustomMediaPlayer";
/////// Fields
/**
* The application context.
* Is used to manage MediaPlayer and async class.
*/
private Context mContext;
/**
* MediaPlayer instance.
*/
private MediaPlayer mMediaPlayer;
/**
* The id representing track used in MediaPlayer create() method
* where will be played.
*/
private Integer mTrackId;
/**
* A flag indicating if the track is playing or not.
*/
private Boolean mIsPlaying = false;
/**
* Initialize providing the application context and the calling fragment track id.
*
* @param context The Context to use.
* @param trackId The raw resource id to use as datasource.
*/
public CustomMediaPlayer(Context context, Integer trackId) {
mContext = context;
mTrackId = trackId;
}
.....
}
Это часть класса, где главный конструктор вызывается из FirstFragment в строке 151.
Любая идея? Спасибо всем!
Вероятно, 'mItem' - null. 'VillancicosActivity.getContext()' отлично пахнет. – laalto
Я попытался getActivity(). GetApplicationContext() и получает ту же самую ошибку. – GmloMalo
Я предполагаю, что если бы это было в контексте, это не сработало бы в любой версии Android, и не только в 4. + – GmloMalo