Articles of java的

Android OkHttp InputStream java.IOException.closed

我使用OkHttpClient在服务器上下载数据库并将其复制到我的Android应用程序上,请求没问题,我得到了很好的内容。 但是,当我尝试将byteStream写入我的文件时,我得到了一个java.IOException.closed 。 你知道我做错了什么吗? Response httpResponse = webApiClient.execute( new WebApiRequest(WebApiMethod.DB_DOWNLOAD), context); if (httpResponse.code() == 200) { try { InputStream inputStream = httpResponse.body().byteStream(); File databasePath = context.getDatabasePath(Constant.DATABASE_NAME); FileOutputStream output = new FileOutputStream(databasePath); int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int len; while ((len = inputStream.read(buffer)) != -1) { output.write(buffer, 0, len); } success = […]

Ubuntu 15.04构建Android 5.0错误:您正在尝试使用不正确的java版本构建。 为什么?

错误: ============================================ Checking build tools versions… ************************************************************ You are attempting to build with the incorrect version of java. Your version is: Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar java version “1.7.0_80” Java(TM) SE Runtime Environment (build 1.7.0_80-b15) Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode). The required version is: “1.7.x” Please follow the machine setup instructions at […]

如何增加一定比例的触摸面积?

我一直在尝试开发这个游戏,用户必须点击图像上的某些点。 我一直根据像素位置存储这些点。 通过获取onTouch事件中的X和Y坐标,我可以轻松地按下像素。 但我面临的问题是每次都难以按下像素的确切位置(因此,为了测试目的,我在所有4个方向上设置了40 px的容差)。 那么有没有一种方法可以设置某种容差,可以从设置菜单进行调整,以便人们可以轻松地使用不同手指尺寸的人,并使用不同的屏幕尺寸播放? 我们非常感谢您提供任何帮助或建议 tolerance = 40 public boolean onTouchEvent(MotionEvent event) { // MotionEvent object holds XY values if (event.getAction() == MotionEvent.ACTION_DOWN) { int XCood = (int) event.getX(); int YCood = (int) event.getY(); int XMin = ActXCod[index] – tolerance, XMax = ActXCod[index] + tolerance, YMin = ActYCod[index] – tolerance, YMax = ActYCod[index] […]

添加jar文件后的Android Studio preDexDebug

我有一个自己的框架,我用于课堂上的任务(学校课程,而不是Java类),我把它变成了一个.jar文件,这样每当我对框架进行更改时,我都可以拖放它进入Android Studio。 在过去的5个左右的类任务中,一切都运行良好,现在突然间我在点击运行后解析我的.jar时遇到preDexDebug failed错误。 我在一个空白项目上测试了这个。 该项目共有2个.jar s:Gson和我自己的jar。 在我拉入我自己的.jar后,它打印出preDexDebug failed …我已经在这两个真正的时间内进行了摔跤,我不知道我能做些什么来解决这个问题… 我已经尝试重建,清理,检查gradle.build是否有重复项,多次复制项目,以及多次编译和复制.jar 。 Ubuntu x64与64位Oracle JDK 1.8.0_31。 使用与JDK捆绑在一起的Java Android Studio输出: Configuration on demand is an incubating feature. :app:preBuild UP-TO-DATE :app:preDebugBuild UP-TO-DATE :app:compileDebugNdk UP-TO-DATE :app:checkDebugManifest :app:preReleaseBuild UP-TO-DATE :app:prepareComAndroidSupportAppcompatV72103Library UP-TO-DATE :app:prepareComAndroidSupportSupportV42103Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :app:generateDebugBuildConfig UP-TO-DATE :app:generateDebugAssets UP-TO-DATE :app:mergeDebugAssets UP-TO-DATE :app:generateDebugResValues UP-TO-DATE :app:generateDebugResources UP-TO-DATE :app:mergeDebugResources […]

如何协调两个后台任务?

我在片段中运行了2个AsyncTasks。 AsyncTasks在不同的类中定义,而不是片段的内部私有类。 我遇到的问题是,现在我需要让AsyncTaskX等到AsyncTaskY完成其onPostExecute 我怎么解决这个问题? 我正在考虑使用倒计时,但是AsyncTaskY在不同的类中,我不确定这是什么最好的编码方式? 有没有办法检查AsyncTask是否完全完成? 更新: 我想知道在task.execute().get()之后是task.execute().get()返回吗? 更新2: 从UI线程安全调用CountDownLatch.countDown() ?

Android First App教程问题

我一直试图让它工作,甚至完全按照教程的说法复制和粘贴代码,但它似乎不起作用。 我知道问题出在MainActivity或DisplayMessageActivity中,但我看不出有什么问题。 我还将DisplayMessageActivity与MainActivity放在同一个文件夹中。 我收到以下错误。 DisplayMessageActivity Gradle: error: cannot find symbol class SuppressLint Gradle: error: package R does not exist Gradle: error: cannot find symbol variable NavUtils MainActivity Gradle: error: cannot find symbol class DisplayMessageActivity 我已经习惯了一段时间,并且无法弄清楚我做错了什么。 任何帮助深表感谢。 我拥有的, AndroidManifest.xml中 ~snip~ ~snip~ DisplayMessageActivity import android.app.Activity; import android.os.Build; import android.os.Bundle; import android.view.MenuItem; public class DisplayMessageActivity extends Activity { […]

如何在Android中动态更改文本大小

我想实现一个function, EditText用户在输入文字时,可以根据设置的字体大小进行更改, 例如Google Docs of Office, 现在我find了一种方法来使用SpannableString ,但是阅读一些例子似乎无法满足我的需求 int index = input.getSelectionEnd(); SpannableString spann = new SpannableString(show_input); AbsoluteSizeSpan word_size = new AbsoluteSizeSpan(18,true); spann.setSpan(word_size, 0, 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); input.getText().insert(index, spann); 那有什么办法可以提供吗?

Qt Creator 3.2.1包括.jar for Android

大家好,提前抱歉提出这个问题,但经过五天的stackoverflow搜索并进行谷歌工程后,我仍然没有回答我的问题: 我想在我的项目中包含几个* .jar文件,我的android应用程序将在Qt编译后使用它。 这是我的环境: 已安装的Qt Creator 3.2.1(exe,不是从源代码编译的) main.cpp(启动Qt-Part) android / MainActivity.java(从简单的“Hello world”开始,应该包含.jars提供的不同类(google-api-client-1.19.0.jar google-api-client-android-1.19.0.jar google- http-client-1.19.0.jar google-http-client-android-1.19.0.jar google-http-client-jackson-1.19.0.jar google-oauth-client-1.19.0.jar jackson-core- asl-1.9.13.jar jsr305-1.3.9.jar) 的Android / AndroidManifest.xml中 android / libs包含所需的.jars 在谷歌搜索该问题后,我尝试了几乎所有的东西,每次都得到相同的结果:找不到Android应用程序的.jars或者构建过程不起作用: [javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:14: error: package com.google.android.gms.common does not exist [javac] import com.google.android.gms.common.ConnectionResult; [javac] ^ [javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:15: error: package com.google.android.gms.common.api does not exist [javac] import com.google.android.gms.common.api.GoogleApiClient; [javac] ^\MainActivity.java:15: error: […]

错误:代码太大

我正在创建一个应用程序,它在数据库中查找(我目前正在构建)。 当我收到错误时,我已经完成了超过10/12 :代码太大而不能作为Gradle Build消息。 java文件几乎只是一个“数据库”(在另一个类中使用数据)。 它具有以下forms: static int[][] mDatabase10 = new int[][]{{1, 0, 0, 0, 11, 22}, {1, 53, 42, 0, 41, 0}, {7, 34, 11, 33, 32, 0}}; 每个arraysarrays中有80个arrays(其中12个): static int[][][][] dbDatabase = {{mDatabase10, mDatabase10a, mDatabase10b, mDatabase10c, mDatabase10d, mDatabase10e, mDatabase10f, mDatabase10g, mDatabase10h, mDatabase10i, mDatabase10j, mDatabase10k, mDatabase10l, mDatabase10m, mDatabase10n, mDatabase10o, mDatabase10p, mDatabase10q, mDatabase10r, mDatabase10s, mDatabase10t, […]

在Android上发出socket.io消息

我正在尝试使用socket.io开发一个应用程序。 有2个设备,当有人触摸到设备1的屏幕时,我需要在设备2上看到一条消息。 这是nodeJS服务器代码(我使用的是SocketIO v0.9。*,因为socket.io-java-client不支持版本> 1.0.0) var app = require(‘http’).createServer() var io = require(‘socket.io’).listen(1337); io.on(‘connection’, function (socket) { socket.on(‘tiklama’, function (data) { console.log(data); io.emit(‘tiklama’, data); }); }); 和我的Java代码( 点击这里查看整个代码): protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final RelativeLayout anapanel = (RelativeLayout) findViewById(R.id.anapanel); final TextView tw = (TextView) findViewById(R.id.textView1); final TextView tw2 = (TextView) findViewById(R.id.textView2); final TextView […]