小编Eri*_*vik的帖子

appcompat-v7 v21.0.0导致Android v4.2.2在三星设备上崩溃

我们刚刚更改了应用程序以使用appcompat-v7 support库,以便利用支持操作栏并支持Material主题.使用v21.0.0 of appcompat-v7(以及v21.0.0 of support-v4)我们现在看到的崩溃Google Play和Crashlytics仅来自三星设备runningAndroid v4.2.2 . Here is the stack trace from Google Play and the app appears to crash as soon as theactionbar`显示和/或无效.

java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder
at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991)
at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041)
at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259)
at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80)
at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:176)
at android.app.ActivityThread.main(ActivityThread.java:5299)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)

运行v4.2.2的其他设备和模拟器不会出现此行为.我的理解是,许多Google应用已经在使用此新版本来appcompat显示操作栏.如果这些应用程序没有报告这些设备上的崩溃,那么了解如何避免/修复这些应用将会很有帮助.

我向谷歌报告这是一个错误,但由于它是一个开发问题而被关闭了.虽然我确实同意这可能是这种情况,但我想知道是否/如何使用任何人appcompat-v7 v21.0.0并且不会发生崩溃Samsung 4.2.2 devices …

android proguard android-appcompat samsung-mobile android-4.2-jelly-bean

79
推荐指数
3
解决办法
1万
查看次数

不同手机/设备和操作系统版本上的Android堆大小

有没有人知道Android手机上的堆大小是否是根据操作系统版本中设置的常量值,或者这是电话制作者可以决定的设置?

堆大小是否与手机上的RAM量成正比?

我只找到了人们说应用程序的堆大小为16M的文章.但是,这些文章有点陈旧.从我看来,作为一个例子,在一个特定型号上,堆大小从大约20M到24M不等.这款手机拥有768M的RAM.

heap android

71
推荐指数
6
解决办法
9万
查看次数

Android开发不使用Eclipse

好的,所以我是Emacs的狂热用户,并且倾向于远离使用IDE,除非我绝对必须并且我看到建议使用带有插件的Eclipse来开发android.我只是想知道是否真的有必要使用Eclipse插件(或其他一些)?

ide emacs android

33
推荐指数
5
解决办法
1万
查看次数

奇怪的"接收者未注册"例外

在onResume()我做:

registerReceiver(timeTickReceiver, new IntentFilter(Intent.ACTION_TIME_TICK));
Run Code Online (Sandbox Code Playgroud)

并在onPause()中:

unregisterReceiver(timeTickReceiver);
Run Code Online (Sandbox Code Playgroud)

我在Android Developer Console中看到"java.lang.IllegalArgumentException:Receiver not registered"报告(只有2个报告,我的应用程序有数千个用户).异常由unregisterReceiver()触发.可能发生什么?用try-catch围绕它我感觉不自信.

android broadcastreceiver

24
推荐指数
2
解决办法
2万
查看次数

你可以在Eclipse中禁用DDMS吗?

有谁知道是否可以在Eclipse中禁用DDMS?我的意思是DDMS不应该在启动Eclipse时启动.

我想只使用终端的DDMS,但是当我启动它时,它一直说:

无法打开选定的VM调试端口(8700).确保没有运行DDMS或eclipse插件的其他实例.如果它被其他东西使用,请在首选项中选择一个新的端口号.

我比独立的DDMS更喜欢Eclipse中内置的DDMS,主要是因为它更容易在DDMS和源代码之间切换.而且,当DDMS作为Eclipse的插件运行时,我觉得它被放在同一个程序中.此外,由于DDMS非常不稳定并且崩溃很多,因此更容易重新启动DDMS而不必重新启动"不那么快"的Eclipse.

eclipse android ddms

20
推荐指数
2
解决办法
2万
查看次数

从网络资源搜索建议到快速搜索框

我正在应用程序中构建搜索,并且需要有一种方法可以将我从服务器获得的建议作为JSON数组放入快速搜索框下方显示的建议列表中.

有一种简单的方法可以让快速搜索框读取这些资源吗?

目前我正在尝试使用ContentProvider,但是接口方法清楚地表明应该查询数据库以获取建议.我想如果您正在搜索存储在应用程序中的数据,那么使用ContentProvider是正确的方法.但是,我不太确定,如果您需要查询网络资源,这是正确的方法.

我将从网络获得的建议保存到本地数据库是没有意义的,因为建议及其命中率会不时变化.

有谁有这个问题?或者可以指出我在类似问题的方向?我在堆栈上找不到提到网络建议的问题.

networking android json quick-search

16
推荐指数
2
解决办法
5421
查看次数

为什么AdMob会返回NO FILL

我在Android应用中使用AdMob视图,但我无法在应用中获得任何广告.

作为参考,我已经添加了查看到ListView由达恩·戴尔解释这里

编辑:我正在使用GoogleAdMobAdsSdk-4.1.1.Google AdMob Ads SDK 4.1.0版的发行说明中说:

"... - 添加了对AdRequest.addTestDevice()和AdRequest.setTestDevices()的支持.请注意,AdRequest.setTesting()现已弃用...."

这是广告插入我的ListView的方式:

public View getView(int position, View convertView, ViewGroup parent) {

  // Some other code
  // Reusing convertView etc.

  AdView adView = 
     new AdView((Activity) getContext(), AdSize.BANNER, 
     "/xxxxxx/ca-pub-xxxxxxx/my_ad_unit");
  for (int i = 0; i < adView.getChildCount(); i++) {
    adView.getChildAt(i).setFocusable(false);
  }
  adView.setFocusable(false);
  float density = getContext().getResources().getDisplayMetrics().density;
  int height = Math.round(50 * density);
  AbsListView.LayoutParams params = new AbsListView.LayoutParams(
    AbsListView.LayoutParams.FILL_PARENT, height);

  adView.setLayoutParams(params);
  AdRequest request = new AdRequest();
  request.addTestDevice("xxxxxxxxxxxxxxxxx");
  adView.loadAd(request);

  // other stuff
  // returning …
Run Code Online (Sandbox Code Playgroud)

android listview admob

10
推荐指数
1
解决办法
1万
查看次数

即使ArrayAdapter更新,AutoCompleteTextView也不显示结果

我正在尝试使用AutoCompleteTextView(ACTV)来显示我从网络资源中获取的结果.我已将完成阈值设置为2,我可以看到在输入字符时触发了请求.

我得到的结果是正确的.让我说我写"ca",我得到结果"汽车"作为自动完成.我有一个回调函数,它接收来自AsyncTask的结果并将结果放入ArrayAdapter.然后我在ACTV上调用.showDropDown()并显示一个空的下拉列表(正常元素大小的一半).然后,如果我输入最后一个字母"r"并且ACTV显示"car",则显示下拉列表并且结果突然出现在列表中.

如果我输入了两个字符(返回有效结果),则删除最后一个字母也会出现同样的情况.删除该字母后,"car"将显示为自动完成值.

有谁有这个问题?看起来适配器已经填充了结果,但结果直到我做的下一个操作才会显示.我已经尝试在将结果添加到适配器后运行.notifyDataSetChanged(),但是不应该这样做,或者?

android adapter autocompletetextview

7
推荐指数
1
解决办法
3494
查看次数

跨活动传递信息的问题

我试图通过这个:

Intent i=new Intent(ctx,SpendingsDetails.class);
extras.putString("SpendingAmount", "1");
extras.putString("SpendingDescription","2");
extras.putString("SpendingDate","3");
i.putExtras(extras);
startActivityForResult(i,1);
Run Code Online (Sandbox Code Playgroud)

获取信息的活动会执行以下信息.

    spendingAmount=(TextView)findViewById(R.id.spending_Sum);
spendingDetails=(TextView)findViewById(R.id.spending_Details);

Bundle extras=getIntent().getExtras();
if(extras!=null)
{
    spendingAmount.setText(extras.getString("SpendingAmount"));
    spendingDetails.setText(extras.getString("SpendingDescription"));
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误,应用程序无法在第一个活动屏幕上继续.我做错了什么?

java android android-intent android-activity

1
推荐指数
1
解决办法
152
查看次数