我在这里阅读了一些类似问题的其他主题,但它还没有解决我的问题。
所以我的应用程序,它会根据用户的微调器选择更改图像。所以它从sharedPreferences文件加载选择。
问题是,这个代码适用于我几个月前制作的应用程序。我正在从头开始重新构建我的应用程序,但在需要时使用旧应用程序中的代码。代码是相同的,适用于我的旧应用程序,但不适用于我的新应用程序。这是我的错误日志:
DivXPlugin::onOpenDecryptSession() Not a Divx File.
PrGenericPlugin::onOpenDecryptSession() onCanHandle error
Error: ACDB AudProc vol returned = -8
E/MP-Decision(1802): num online cores: 1 reqd : 2 available : 4 rq_depth:7.000000 hotplug_avg_load_dw: 46
E/MP-Decision(1802): UP cpu:1 core_idx:1 Nw:1.900000 Tw:140 total_time_up:147.000000
E/AudioResampler(209): Unsupported sample format, 1 bits, 2 channels
E/dalvikvm-heap(26650): Out of memory on a 285692020-byte allocation.
E/AndroidRuntime(26650): FATAL EXCEPTION: main
E/AndroidRuntime(26650): java.lang.OutOfMemoryError
E/AndroidRuntime(26650): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method)
E/AndroidRuntime(26650): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:596)
E/AndroidRuntime(26650): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:444)
E/AndroidRuntime(26650): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:835)
E/AndroidRuntime(26650): at android.content.res.Resources.loadDrawable(Resources.java:2988)
E/AndroidRuntime(26650): at android.content.res.Resources.getDrawable(Resources.java:1558)
E/AndroidRuntime(26650): at com.Chris.App.Info.onCreate(Info.java:34)
E/AndroidRuntime(26650): at android.app.Activity.performCreate(Activity.java:5372)
E/AndroidRuntime(26650): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1104)
E/AndroidRuntime(26650): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2257)
E/AndroidRuntime(26650): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
E/AndroidRuntime(26650): at android.app.ActivityThread.access$700(ActivityThread.java:159)
E/AndroidRuntime(26650): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
E/AndroidRuntime(26650): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(26650): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(27961): FATAL EXCEPTION: main
E/AndroidRuntime(27961): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.Chris.App/com.Chris.App.Info}: java.lang.NullPointerException
E/AndroidRuntime(27961): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2219)
E/AndroidRuntime(27961): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2349)
E/AndroidRuntime(27961): at android.app.ActivityThread.access$700(ActivityThread.java:159)
E/AndroidRuntime(27961): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1316)
E/AndroidRuntime(27961): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(27961): at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(27961): at android.app.ActivityThread.main(ActivityThread.java:5419)
E/AndroidRuntime(27961): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(27961): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(27961): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
E/AndroidRuntime(27961): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E/AndroidRuntime(27961): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(27961): Caused by: java.lang.NullPointerException
E/AndroidRuntime(27961): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:174)
E/AndroidRuntime(27961): at com.Chris.App.Info.<init>(Info.java:17)
E/AndroidRuntime(27961): at java.lang.Class.newInstanceImpl(Native Method)
E/AndroidRuntime(27961): at java.lang.Class.newInstance(Class.java:1130)
E/AndroidRuntime(27961): at android.app.Instrumentation.newActivity(Instrumentation.java:1078)
E/AndroidRuntime(27961): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2210)
E/AndroidRuntime(27961): ... 11 more
E/AndroidRuntime(26650): at android.app.ActivityThread.main(ActivityThread.java:5419)
E/AndroidRuntime(26650): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(26650): at java.lang.reflect.Method.invoke(Method.java:525)
E/AndroidRuntime(26650): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1187)
E/AndroidRuntime(26650): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1003)
E/AndroidRuntime(26650): at dalvik.system.NativeStart.main(Native Method)
E/android.os.Debug(674): !@Dumpstate > sdumpstate -k -t -z -d -o /data/log/dumpstate_app_error
E/EnterpriseContainerManager(674): ContainerPolicy Service is not yet ready!!!
E/ViewRootImpl(674): sendUserActionEvent() mView == null
这是代码的snippit,它再次适用于App A但不适用于App B?:
SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
final ImageView im = (ImageView)findViewById(R.id.selection1);
String s = sharedPreferences.getString("MEM1", "");
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.info);
if(s.equals("Nothing Selected")) {
im.setImageDrawable(getResources().getDrawable(R.drawable.clearimage));
im.setVisibility(View.GONE);
} else if(s.equals("Selection 1")) {
im.setImageDrawable(getResources().getDrawable(R.drawable.selection1image));
im.getLayoutParams().height = 600;
im.getLayoutParams().width = 600;
}
}
所以我似乎得到一个内存不足错误和上下文包装/问题我的共享首选项???令人沮丧的是,代码与我的其他应用程序完全一样,工作正常
答案 0 :(得分:0)
看来你知道视图的宽度/高度。阅读此http://developer.android.com/training/displaying-bitmaps/load-bitmap.html。
这个位图来自哪里?它来自哪里,它的巨大。您不希望通过网络下载此内容(尽管285MB是未压缩的大小)并终止您的用户数据计划。
您甚至不想将其作为资产发送,因为人们不会下载您的应用。