Articles of java的

何时在Java中使用synchronized

我希望这将是足够的信息,所以在这里。 如果您需要更多信息,请在评论中了解。 我有一个有两个内部类的类。 内部类每个都有两个方法来调用外部类中的方法。 所以,它看起来像这样: public OuterClass { private boolean outerMethodHasBeenCalled = false; private void outerMethod() { if(!outerMethodHasBeenCalled) { // do stuff } outerMethodHasBeenCalled = true; } private FirstInnerClass { public void someMethod() { outerMethod(); } } private SecondInnerClass { public void someOtherMethod() { outerMethod(); } } } 重要的是要注意: 这适用于Android应用。 FirstInnerClass和SecondInnerClass实例作为JavaScript接口传递给WebView,因此可以随时调用someMethod和someOtherMethod ,没有特定的顺序。 我现在的代码(没有synchronized关键字)存在问题,其中outerMethod几乎在同一时间被调用(我打印出日志消息,并且它们被加时间戳到1000秒)由不同的对象。 我的应用程序然后’做东西’两次因为在调用outerMethod时outerMethod仍然是假的。 这不是好的,这正是我想要阻止的。 […]

Observable.empty()导致java.util.NoSuchElementException:Sequence不包含任何元素

我正在使用Retrofit 2.0.0-beta2和RxJava 1.0.14。 我以这种方式处理错误,因为我需要在doFinally中执行一些代码: .onErrorResumeNext(Observable.empty()); 但是当我得到带有错误的http响应时(例如401),我的应用程序崩溃而堆栈跟踪中没有我的类。 如果使用Observable.never没有任何不好的事情发生。 这是完整的堆栈跟踪: java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling. at rx.internal.schedulers.ScheduledAction.run (ScheduledAction.java:60) at android.os.Handler.handleCallback (Handler.java:739) at android.os.Handler.dispatchMessage (Handler.java:95) at android.os.Looper.loop (Looper.java:135) at android.app.ActivityThread.main (ActivityThread.java:5221) at java.lang.reflect.Method.invoke (Unknown source) at java.lang.reflect.Method.invoke (Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:899) at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:694) rx.exceptions.OnErrorNotImplementedException: Sequence contains no elements at rx.Observable$27.onError (Observable.java:7535) at rx.observers.SafeSubscriber._onError […]

具有产品风味的Android GCM

我有GCM示例android gradle项目。 它运行良好,当我添加2种口味时,推送通知停止工作。 我的编译清单(它来自app\build\intermediates\manifests\ex\debug )文件如下: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.flavor.app" 我该怎么做才能解决这个问题? 请帮忙。 UPD1。 我正在使用gradle v.0.12 +。 我认为我的最终清单文件看起来不错,GCMRegistrar.checkManifest(this); – 没有错误,但GCMRegistrar.isRegistered(this)总是假的。 =( UPD2。 我的第一个带有原始包名称的风味项目(作为主分支中的项目)运行良好,但是更改包的第二个风格不起作用(pushId仍然为空),但在清单文件中,所有的定义都是正确的。

Android Volley Null指针exception

我正在尝试将以前基于活动的教程转换为片段,但我继续在我的适配器上遇到NullPointerException错误。 本教程基于此 ,我已经缩减了适配器的构造函数,因为它曾经调用了一个Activity。 这里有一种可能的解决方案,但没有人知道如何处理同样可能的问题。 我想将所有内容转换为工作片段。 如果您需要我提供更多信息,请通知我。 主要转换类: public class mainViewController2 extends Fragment { private static final String TAG = mainViewController2.class.getSimpleName(); private ListView listView; private FeedListAdapter listAdapter; private List feedItems; private String URL_FEED = “http://api.androidhive.info/feed/feed.json”; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View v = inflater.inflate(R.layout.mainviewcontroller2_fragment, container, false); listView = (ListView) v.findViewById(R.id.list); feedItems […]

java.lang.IllegalStateException:在onSaveInstanceState之后无法执行此操作: – 片段中的错误

嗨,我使用片段A和第二片段使用b。 调用b和使用asynctask方法,但我第一次使用这是完美的工作,但第二次然后崩溃应用程序和我的错误登录下面:::我工作三星平板电脑完美工作但三星核心移动崩溃的应用程序。 E/AndroidRuntime: FATAL EXCEPTION: main E/AndroidRuntime: java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1343) E/AndroidRuntime: at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1361) E/AndroidRuntime: at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595) E/AndroidRuntime: at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574) E/AndroidRuntime: at com.buymysari.fragment.SendImageServerFragment$SendImageServerTask.onPostExecute(SendImageServerFragment.java:158) E/AndroidRuntime: at com.buymysari.fragment.SendImageServerFragment$SendImageServerTask.onPostExecute(SendImageServerFragment.java:1) E/AndroidRuntime: at android.os.AsyncTask.finish(AsyncTask.java:631) E/AndroidRuntime: at android.os.AsyncTask.access$600(AsyncTask.java:177) E/AndroidRuntime: at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) E/AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:99) E/AndroidRuntime: at android.os.Looper.loop(Looper.java:137) E/AndroidRuntime: at android.app.ActivityThread.main(ActivityThread.java:4960) E/AndroidRuntime: at java.lang.reflect.Method.invokeNative(Native Method) […]

在Tesseract 2中训练新字体时出现错误:“错误读取inttemp!”

我正在尝试训练Tesseract以获得可在我的Android应用中使用的新字体。 我只需要训练数字,所以我创建了一个训练图像,box文件和unicharset文件。 我已经按照培训说明进行了操作 ,但是当我试图运行tesseract时,它bad read of inttemp! , bad read of inttemp! 。 我究竟做错了什么? 我该如何诊断此错误?

来自Recent Apps的应用程序退回到库存启动器而不是自定义启动器

我正在创建一个自定义启动器,用作手机的信息亭模式。 这意味着大多数东西都被隐藏起来,但允许用户访问某些应用程序。 我注意到当我从最近的应用程序列表启动应用程序时,当我按下后退按钮时,库存启动器会出现,而不是我的自定义启动器。 我确保我的自定义启动器是默认启动器,因为这是我按下主页按钮时启动的启动器。 有人遇到过这个问题吗? 我该如何解决?

使用AES-256和初始化向量进行加密

我有一个关于在AES加密中使用初始化向量的问题。 我正在引用以下文章/post来为我的程序构建加密: [1] Java 256位AES密码加密 [2] http://gmailassistant.sourceforge.net/src/org/freeshell/zs/common/Encryptor.java.html 我最初是从第一个链接开始关注erickson的解决方案,但据我所知,我的实现不支持PBKDF2WithHmacSHA1。 所以,我转向第二个链接,以了解我自己的迭代SHA-256哈希创建。 我的问题在于如何创建IV。 一个实现([1])使用来自Cypher类的方法来导出IV,而另一个([2])使用散列的第二个16字节作为IV。 很简单,从安全的角度来看,为什么差异哪个更好? 我对IVs的推导和使用感到困惑(我理解它们的用途,而不是更微妙的差异),所以任何澄清也是非常受欢迎的。 我注意到第二个链接使用AES-128而不是AES-256,这对我来说,我必须要使用SHA-512才能使用这种方法。 这似乎是一个不幸的要求,因为用户的密码必须长16个字符才能确保远程安全哈希并且这个应用程序的目的地是手机。 可根据要求提供来源,但仍未完整。 先谢谢你。

Android Java:如何减去两次?

我在我的项目中使用了某种秒表而且我有 start time ex: 18:40:10 h stop time ex: 19:05:15 h 我需要这两个值的结果,比如final time = stop – start 我find了一些例子,但它们都非常令人困惑。 有没有简单的解决方案?

使用android SDK中的工具/ android可执行文件启动android AVM / SDK gui的问题。 Ubuntu 10.04,i686

嗨,我刚刚在运行Ubuntu 10.04(Lucid)的i686 Thinkpad T60上安装了android SDK和Eclipse 3.5。 (Eclipse是通过synaptic安装的,即来自存储库的一个包。)我安装了eclipse add,Eclipse端的所有东西看起来都很好。 我还把android-sdk工具目录放在我的用户PATH上。 现在启动没有任何参数的工具/ android应该会启动SDK和AVD管理器GUI,但我得到以下错误: Exception in thread “main” java.lang.UnsatisfiedLinkError: no swt-gtk-3550 or swt-gtk in swt.library.path, java.library.path or the jar file at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) at org.eclipse.swt.internal.C.(Unknown Source) at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source) at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source) at org.eclipse.swt.widgets.Display.(Unknown Source) at com.android.sdkmanager.Main.showMainWindow(Main.java:265) at com.android.sdkmanager.Main.doAction(Main.java:249) at com.android.sdkmanager.Main.run(Main.java:94) at com.android.sdkmanager.Main.main(Main.java:83) 奇怪的是我绝对安装了所有先决条件,sun-java6-jdk和open-java6-jdk,并尝试在它们之间切换。 另外,如果我查看synaptic,我安装了libswt-gtk-3.5java。 […]