Tag: android

更新到最新的appcompat和支持库之后发生DexIndexOverflowException问题

我通过gradle使用下面的设置: compileSdkVersion 21 ANDROID_BUILD_MIN_SDK_VERSION=14 ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.0.2 ANDROID_BUILD_SDK_VERSION=21 我的gradle文件中也有以下设置: compile 'com.android.support:support-annotations:21.0.0' compile 'com.android.support:appcompat-v7:21.0.0' compile 'com.android.support:support-v4:21.0.0' 我总是得到错误UNEXPECTED TOP LEVEL EXCEPTION 。 但是,当我使21.0.0到20.0.0它工作正常…但我无法访问任何Android API 21选项。 有什么我在这里做错了吗? 如何在没有这个exception的情况下编译它? 我没有任何其他级别项目(Facebook等)以外的支持瓶子。 这是完整的堆栈跟踪: UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502) at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:283) at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491) at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168) at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454) at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302) at com.android.dx.command.dexer.Main.run(Main.java:245) at com.android.dx.command.dexer.Main.main(Main.java:214) […]

如何禁用从/到EditText复制/粘贴

在我的应用程序中,有一个注册屏幕,我不希望用户能够将文本复制/粘贴到EditText字段中。 我已经在每个EditText上设置了onLongClickListener ,以便显示复制/粘贴/input方法和其他选项的上下文菜单不显示。 所以用户将无法复制/粘贴到编辑字段。 OnLongClickListener mOnLongClickListener = new OnLongClickListener() { @Override public boolean onLongClick(View v) { // prevent context menu from being popped up, so that user // cannot copy/paste from/into any EditText fields. return true; } }; 但是,如果用户启用了Android默认键盘以外的其他第三方键盘,则可能会出现问题,可能会有一个复制/粘贴button或可能显示相同的上下文菜单。 那么我如何禁用复制/粘贴在这种情况下? 请让我知道是否有其他方法来复制/粘贴。 (并可能如何禁用它们) 任何帮助,将不胜感激。

错误的膨胀类的片段

我得到错误 Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: Binary XML file line #11: Error inflating class fragment 当我通过肖像和风景模式切换。 我正在使用片段。 我的xml是: <LinearLayout android:id="@+id/mainLayout" android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content" > <ListView android:id="@+id/android:list" android:layout_height="wrap_content" android:layout_width="fill_parent"/> <fragment android:id="@+id/fragmentDetails" android:layout_height="fill_parent" android:layout_width="fill_parent" class="de.androidbuch.activiti.task.TaskDetailsFragment"/> </LinearLayout> 如果我通过横向和纵向模式切换一切正常。 但是,当我点击我的片段(我可以看到我的片段),然后切换到另一种模式,我得到的错误。 任何想法我怎么能解决它? 在这里find了一些答案,但没有一个帮助我… 06-21 14:55:05.600: ERROR/AndroidRuntime(7636): FATAL EXCEPTION: main 06-21 14:55:05.600: ERROR/AndroidRuntime(7636): java.lang.RuntimeException: Unable to start activity ComponentInfo{de.androidbuch.activiti/de.androidbuch.activiti.task.Activity}: android.view.InflateException: […]

如何使用baseadapter自定义listview

我想创build一个自定义ListView像这样: 我认为我必须使用BaseAdapter但我不知道它。 请帮帮我。 感谢名单。

是否有可能检测到Android应用程序卸载?

我的应用程序使用Google的C2DM(推送通知)通知用户有关朋友的新活动。 一旦他们安装应用程序,我用C2DM服务器注册设备并存储用户的电话号码。 所以我知道用户正在使用我的应用程序,我可以发送他/她的推送通知。 但是,如果用户卸载我的应用程序会发生什么,有没有办法在我的应用程序中捕捉它? 或者唯一的办法就是当我发送一个C2DM并且无法访问时,在我的服务器上发现一个错误,然后将用户标记为不活动? 我很想告诉用户,当他们的朋友正在使用一个应用程序,当他们不再这样做。 什么是这种情况下的最佳解决scheme?

如何在Android中更改Webview的字体?

我想要将webview的默认字体更改为自定义字体。 我正在使用webview为Android开发一个双语浏览器应用程序。 我尝试通过将自定义字体放置在资源中来获取自定义字体的实例。 但仍然无法将webview的默认字体设置为我的字体。 这是我试过的: Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf"); private WebView webview; WebSettings webSettings = webView.getSettings(); webSettings.setFixedFontFamily(font); 任何人都可以改正这个或build议任何其他方法来改变webview的默认字体为自定义字体? 谢谢!

从资产文件夹加载大于1M的文件

我疯了,我创build了一个文件对象,所以它可以用ObjectInputStream读取,我放置的资产文件夹。 该方法使用小于1M的文件,并给较大的文件提供错误。 我读到的是Android平台的限制,但我也知道可以“轻松”避免。 那些已经下载了Reging Thunder游戏的例子,可以很容易的看到,在他们的资产文件夹中是一个18.9M大的文件。 这是我从ObjecInputStream中读取1个对象的代码 File f = File.createTempFile("mytempfile", "dat"); FileOutputStream fos = new FileOutputStream(f); InputStream is = mc.getAssets().open(path,3); ObjectInputStream ois=new ObjectInputStream(is); byte[] data = (byte[]) ois.readObject(); fos.write(data); fos.flush(); fos.close(); ois.close(); is.close(); 现在我有一个未压缩的文件,我可以使用它,而不必担心错误“该文件不能打开为文件描述符,它可能是压缩” 此函数适用于小于1M的文件,较大的文件在“ObjectInputStream ois = new ObjectInputStream(is);”上返回一个java.io.IOExceptionexception。 为什么??

如何制作Android自定义键盘?

我想制作一个自定义的键盘。 我不知道如何在XML和活动。 这张照片是我的键盘模型。 它只需要数字。

如何以编程方式确定蓝牙设备是否已连接? (Android 2.2)

我知道如何获得配对设备的清单,但我怎么知道他们是否连接? 这一定是可能的,因为我看到他们列在我的手机的蓝牙设备列表中,并说明他们的连接状态。

Android / Java中的JSON数组迭代

我正在构build一个需要下载并与在线数据库同步的android应用程序,我正在从应用程序发送我的查询到一个php页面,从JSON格式的数据库返回相关的行。 有人可以告诉我迭代通过JSON数组的最佳方式? 我收到一个对象数组: [{json object},{json object},{json object}] 我可以用来访问数组中的JSONObjects的最简单的代码是什么? 编辑:现在我想到了我用来迭代循环的方法是: for (String row: json){ id = row.getInt("id"); name = row.getString("name"); password = row.getString("password"); } 所以我想我已经能够把返回的Json转换成可迭代的数组。 任何想法我怎么能做到这一点? 我为自己的迷茫道歉,但是我从网上find的一个例子中find了这个工作,之后一直无法find它。