我应该在onDestroy(或onDetach)方法中明确地将片段的所有变量设置为null以避免内存泄漏吗?或者它没有必要,并且当片段被"破坏"时它们将被GCed.什么是最佳做法?提前致谢!
这可能听起来很可疑,但我需要对我自己的应用进行反混淆处理.前段时间我发布了我的应用程序,我与Proguard混淆了.不幸的是我没有保存该应用程序的版本并且更改了代码.
现在我需要旧版本的代码.我仍然有 Proguard生成的mapping.txt文件.
我已将classes.dex文件转换为jar(使用dex2jar工具),现在我需要根据mapping.txt对其进行反混淆处理.有什么工具可以帮助我吗?也许Proguard本身?
UPD.我需要一个可以自动重命名所有类,函数等的工具,所以我不必手动完成.谢谢
我收到“无法解析符号”错误,因为 android.jar 缺少一些类。例如:
import android.annotation.MainThread;
import android.annotation.WorkerThread;
import android.annotation.CallSuper;
import android.annotation.DrawableRes;
import android.annotation.IdRes;
import android.annotation.IntDef;
import android.annotation.LayoutRes;
import android.annotation.MainThread;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.annotation.StyleRes;
import android.annotation.SystemApi;
Run Code Online (Sandbox Code Playgroud)
以及许多其他人。
这些类在sources/android-xx 中以.java 文件形式存在,但不在实际的.jar 文件中。
我究竟做错了什么?
onCreateOptionsMenu方法永远不会被调用,即使我已完成其他类似问题的所有步骤(如下所示:片段内的菜单未被调用 ;而且:在电话版本上运行时,onCreateOptionsMenu未在FragmentActivity上调用)
1)我在Fragment的onCreate方法中调用setHasOptionsMenu(true)
2)我重写onCreateOptionsMenu(菜单菜单,MenuInflater inflater)这样的方法
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.main, menu);
}
Run Code Online (Sandbox Code Playgroud)
[3]而且我也实现了onOptionsItemSelected(MenuItem item)]
WTH?
PS我正在使用android-support-v4.jar.
PPS @ Philipp Jahoda,我在Fragment的托管活动中实现onCreateOptionsMenu(...).