小编Edi*_*son的帖子

无法执行dex:方法ID不在[0,0xffff]:65536中

我以前见过各种版本的dex erros,但这个版本是新的.清理/重启等无济于事.图书馆项目似乎完好无损,依赖似乎正确联系在一起.

Unable to execute dex: method ID not in [0, 0xffff]: 65536
Conversion to Dalvik format failed: Unable to execute dex: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

要么

Cannot merge new index 65950 into a non-jumbo instruction
Run Code Online (Sandbox Code Playgroud)

要么

java.util.concurrent.ExecutionException: com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
Run Code Online (Sandbox Code Playgroud)

tl;博士:Google的官方解决方案终于来了!

http://developer.android.com/tools/building/multidex.html

只有一个小提示,你可能需要这样做以防止在执行dex-ing时内存不足.

dexOptions {
        javaMaxHeapSize "4g"
}
Run Code Online (Sandbox Code Playgroud)

还有一种巨型模式可以以不太可靠的方式解决这个问题:

dexOptions {
        jumboMode true
}
Run Code Online (Sandbox Code Playgroud)

更新:如果您的应用程序很胖并且您的主应用程序中有太多方法,则可能需要按照应用程序重新设置应用程序

http://blog.osom.info/2014/12/too-many-methods-in-main-dex.html

android dex

341
推荐指数
7
解决办法
14万
查看次数

杰克逊读取价值为字符串

比方说,我有一个价值未知的物体

{
 "data": [
    {"a":...,
    "dont_know_what_else_is_here":....}
 ]
}
Run Code Online (Sandbox Code Playgroud)

我只想将"data"的值作为字符串存储到变量/数据库中.

我应该如何从流API中读取它?

java json jackson

29
推荐指数
4
解决办法
7万
查看次数

OpenGraph API用户对象有时会返回404s的链接

在我的应用程序中,我允许用户通过oauth连接他们的Facebook帐户,以便通过我们的界面发布.我们支持简单管理页面的页面帐户和常规帐户.

我们还检查opengraph API调用的结果,以获取其配置文件或页面的有效URL.我们使用的主要端点是https://graph.facebook.com/me(带有oauth凭证).对于某些仅限页面的帐户,返回的对象具有"链接"值,当输入到Web浏览器中时,该值为404s.

我看到的错误网址分为两种不同的情况:

该URL可以是"www.facebook.com/ {page_id}"形式,在某些页面上有404,但在其他页面上没有.

URL的格式可以是"www.facebook.com/profile.php?id={user_id}",这通常不是404.

我见过的唯一适用于所有帐户的网址格式是www.facebook.com/profile.php?id={page_id}.在第一种情况下,我们检测到'link'字段不是正确的形式(使用profile.php?id = ...),并构造一个具有适当结构的URL,并且它可以工作.

我正在考虑添加的下一个启发式是查看URL是否是正确的形式....但使用{user_id}作为profile.php的id参数,并使用{page_id}构建URL.显然,这太荒谬了.

那么,是否有一种很好的方法可以知道某个帐户是否会返回无效的链接?这是API中的错误吗?考虑到开放图形API上的用户,获取其个人资料/页面的工作链接,最可靠的方法是什么?

api opengraph facebook-graph-api

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

使堆栈指针返回到mmap返回的指针.(Linux,32位VM)

我正在尝试将我的堆栈指针移动到mmap-ed区域来模拟上下文切换,但不知何故,下面的代码总是会产生分段错误:

C:

struct savectx {
    void *regs[JB_SIZE];
};

struct savectx* initctx=(struct savectx*)malloc(sizeof(savectx));
void *newsp;
if ((newsp=mmap(0,STACK_SIZE,PROT_READ|PROT_WRITE,
    MAP_PRIVATE|MAP_ANONYMOUS,0,0))==MAP_FAILED){
    perror("mmap failed");
}
initctx->regs[4]=newsp;
restorectx(initctx,0);
Run Code Online (Sandbox Code Playgroud)

86:

 restorectx:
 movl   4(%esp),%ecx        /*Move jump buffer addr to ecx */
 movl   8(%esp),%eax        /*Longjmp return value */
 movl   (JB_SP*4)(%ecx),%esp    /*JB_SP is defined to be 4,*/
Run Code Online (Sandbox Code Playgroud)

该程序在程序集的最后一行失败.

对于malloc,我知道我可能需要向指针添加0x000f0000,但是mmap呢?或者我们如何使堆栈调整到mmapp-ed位置.(mmap的手册页:http://linux.die.net/man/3/mmap,在ubuntu上用GCC编译)

c linux assembly stack pointers

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

带有对话框和祝酒词的Android屏幕截图API,谁是他们的父母?

(此问题不仅限于从当前活动获取根视图)

使用getWindow().getDecorView(),我能够获得根视图的绘图缓存,但是,如果我发生任何对话框或吐司,它们不会显示在根视图中.

Toast是如何呈现的?它附在哪里?是否有可能获得父视图的绘图缓存?

谢谢

android

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

Android静态变量范围和生命周期

我有一个应用程序,它有一个服务,用于ArrayList<Double>在后台存储数字很长一段时间; 服务启动时初始化变量.

服务在后台,并且会频繁访问变量(这就是我不想使用文件管理或设置的原因 - 为了电池寿命,文件I/O会非常昂贵) .

该变量在其生命周期内可能约为1MB-> 2MB.

是否可以安全地说GC或系统永远不会对该变量进行清空,或者有什么方法可以阻止它?

android scope memory-management instance-variables power-management

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

FragmentPager不更新视图

我尝试做其他答案建议的内容,但是当我查看日志时,在使用POSITION_NONE返回getItemPosition之后,没有为getItem调用位置0,任何想法?我还尝试在返回getItemPosition时覆盖destoryItem,它会被调用但没有任何反应.

public class ProvidersActivityPagerAdapter扩展FragmentPagerAdapter {

private ArrayList<String> fragments;

public ProvidersActivityPagerAdapter(FragmentManager fm) {
  super(fm);
  fragments=new ArrayList<String>();
  if(provider.isInitialized()){
    fragments.add(BaseDetailsFragment.class.getName());
  }else{
    fragments.add(BaseAuthFragment.class.getName());
  }
  this.fm=fm;
}

@Override
public int getCount(){
  return fragments.size();
}


@Override 
public int getItemPosition(Object object) {
  AppUtils.logI("Get Item Position: "+POSITION_NONE+" "+object.getClass().getName());
  return POSITION_NONE;
}

@Override
public Fragment getItem(int position) {
  AppUtils.logI("Get Fragment for: "+position);
  String f=fragments.get(position);
  if(f.equals(BaseDetailsFragment.class.getName())){
    return provider.getDetailFragment();
  }
  if(f.equals(BaseAuthFragment.class.getName())){
    return provider.getAuthFragment();
  }
  if(f.equals(BaseSelectorFragment.class.getName())){
    return provider.getCurrentSelector();
  }
  return new Fragment();
}

private void addItem(int loc,String fa,String tag){
  this.fragments.add(loc,fa);
  AppUtils.logI(fragments.toString());
  notifyDataSetChanged(); …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

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

在ajax调用之后的jquery,具有相同Ids的事件停止工作

不确定这是不是一个错误,或者我不认为这样做.

我有一个侧边栏页面动态加载主体.

对于page1,我有一个元素#id1的回调,它适用于初始加载.

在用户导航到page2之后,主内容将被page2的内容替换,page2的内容也包含#id1的元素,它们用于相同的目的.事件也在那里初始化.

问题是第2页上的所有内容都可以使用,除了与#id1相关的事件.

如果导航回第1页,#id1将无法正常工作.

看完控制台之后,我发现在调用$("#id1")时有时会给我初始加载元素(没有销毁?),这可能就是原因.

ajax加载只使用:

$ .get(path,function(data){$('#main').html(data)});

知道这里发生了什么吗?

如果旧元素没有"在jquery中被正确销毁",那么这里假设要做什么.

javascript jquery javascript-events

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