小编Gra*_*and的帖子

Mercurial - 在"hg update -C"之后恢复未提交的更改

我是Mercurial的新手.我做了hg status,我看到了自上次提交以来发生变化的文件M.然后我试过了hg update -C.M在我做之前,有什么方法可以取回文件的版本hg update -C吗?还是我几乎搞砸了?:(因为hg update -C丢弃自上次提交以来的任何更改

mercurial

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

onUpgrade数据库 - oldVersion - newVersion

我正在使用这个DataBaseHelper.class,我被困在onUpgrade()方法上.我不知道如何弄清楚数据库的版本号是什么.我可以将版本设置为1,我第一次发布它,当我发布更新时,我只需将版本设置为2 (myDataBase.setVersion(2);).但只要应用程序正在运行,它就只有2.下一次它将被启动它再次是1.同样的事情发生了private static int DATABASE_VERSION.我正在考虑将版本号存储在一个额外的表中,但在我看来,这似乎不是最佳实践.

那么如何确保版本号在升级后增加并且保留它(分配给private static int DATABASE_VERSION或的值myDataBase.getVersion();)?

DataBaseHelper类:

public class DataBaseHelper extends SQLiteOpenHelper {

    //The Android's default system path of your application database.
    private static String DB_PATH = "/data/data/com.mydatabase.db/databases/";

    private static String DB_NAME = "database.sl3";

    private SQLiteDatabase myDataBase;

    private final Context myContext;


    // Do you need this?
    private static int DATABASE_VERSION = 2;
    // or is this correct:
    // private static int DATABASE_VERSION = myDataBase.getVersion();


    /**
     * Constructor
     * Takes and …
Run Code Online (Sandbox Code Playgroud)

java sqlite android upgrade

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

是否可以在Android Manifest中包含/导入代码?

我正在为其他Android应用程序使用一个包,当他们导入.jar时,他们还需要添加一个合理的权限块,例如android清单.是否有可能拥有这些必需的权限,意图过滤器以及与包捆绑在一起的所有权限,并且只需在构建时将它们全部导入到清单中,并且清单中有一行?与仅提供一大块代码以从包网站复制并粘贴到清单相比.如果权限被捆绑在一起,我认为这会使导入其他软件包(一个例子是谷歌分析)变得更加容易,并且有些东西<import package.name.manifest>是唯一需要输入的行.

任何关于这是否可行的提醒都会很棒,谢谢

import android manifest include android-manifest

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

eclipse,两个不同的文件在不同的目录中具有相同的名称

这让我有点疯狂,但是安卓的方式是,你有不同的目录,使用相同的xml名称.

所以,例如,你可能有:

res/layout/main.xml和
res/layout-land/main.xml

当你处于横向模式时,它将知道使用layout-land目录中的那个.

真正令人恼火的是,当我在Eclipse中时,我打开res/layout/main.xml文件,如果在项目浏览器中我点击打开layout-land/main.xml中的那个,它就会离开你打开的那个(res/layout/main.xml)打开了.这太烦人了.你可以通过简单地关闭打开的那个来解决它,然后当你点击打开布局中的那个时它将打开正确的那个,但是只要你已经拥有一个具有该名称的文件(不是同一个目录) )开放.

有没有办法解决这个问题,除了使用不同的编辑器或"与它一起生活"?

eclipse android

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

如何在android中获取WIFI接口的MAC地址?

我使用以下代码:

WifiManager wifiMgr = (WifiManager) app.getSystemService(Context.WIFI_SERVICE);
return wifiMgr.getConnectionInfo().getMacAddress();
Run Code Online (Sandbox Code Playgroud)

问题是,必须在设备中启用WIFI才能让我读取其地址.即使WIFI关闭,我怎么还能读取WIFI的MAC?

android android-wifi

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

Android NDK - 构建TessTwo(适用于Android的Tesseract工具的分支) - ndk-build失败

当我运行ndk-build时,它会因以下错误而抱怨:

$ ndk-build
make: /…/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found

Compile arm : jpeg <= jcapimin.c
make: /…/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: Command not found

make: *** [obj/local/armeabi/objs/jpeg/jcapimin.o] Error 127
Run Code Online (Sandbox Code Playgroud)

问题是虽然它说"命令未找到",但上面的路径中存在"arm-linux-androideabi-gcc".即使我直接从/.../toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/运行"arm-linux-androideabi-gcc",也会出现"未找到命令"的相同错误

我还将./toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin添加到我的PATH中,但仍然收到相同的错误.即使我尝试了不同版本的ndk(7,7b,6b)仍然是同样的错误!在我看来,上面的gcc适用于32位机器,而我的机器是"Linux 2.6.32-37-server x86_64".但我想ndk包应该适用于32位和64位.我对吗?在使用之前我需要编译或构建ndk吗?我假设下载和解包是我所要做的.对?怎么样sdk?我刚下载并将其解压缩到我拥有的ndk文件夹中.我是否需要将它们配置为相互协作

linux ocr 64-bit android tesseract

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

强制Clang与C++运行时链接

我有一个包含C和C++源混合的项目.它目前在OS X上使用GCC构建.该项目具有定制的构建脚本,该脚本调用gcc命令来编译C和C++源,并单独调用链接器.

我现在正试图让它与Clang建立.

调用clang确实正确编译源文件; 它区分.c.cpp源文件,并在每种情况下编译适当的语言.不过,我在链接时遇到了问题.当调用链接器时clang,C++运行时库未链接,导致由于缺少符号而导致生成错误.

当我设置clang++为构建工具时,我可以成功链接,但这会导致编译时错误和警告; 它真的不喜欢用C++编译器编译C源代码.

clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated
...
/usr/include/stdio.h:250:49: error: redefinition of parameter 'restrict'
Run Code Online (Sandbox Code Playgroud)

我必须为构建脚本指定一个工具来用作编译器/链接器,所以我需要做一个简单的替换clang代替gcc.有什么方法可以说服clang(不clang++)与C++运行时库链接?

选项如-stdlib=libc++不起作用.

c c++ macos linker clang

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

内存不会重新分配

我正处于一个项目的中间,我正在尝试使用malloc()realloc().我知道当我使用malloc时,它可以工作,但是当我使用realloc时,它根本不会改变分配的内存量.我总是认为realloc将重新分配你已经malloced的内存.

这是我有的:

这包括:

#include <stdlib.h>
Run Code Online (Sandbox Code Playgroud)

我有一个结构:

struct student {
    int age;
    int numOfClasses;
    int gender; //0 male; 1 female
} student;
Run Code Online (Sandbox Code Playgroud)

当我想使用malloc制作其中7个结构时,我将使用以下代码行:

student stud* = (structure*) malloc(7*sizeof(student));
Run Code Online (Sandbox Code Playgroud)

这条线有效.该行代码采用结构的大小并乘以7乘以简而言之,这将获取足够的内存来生成7个结构的数组.

现在,如果我想将其更改为8,我会A在以前的malloced内存中执行此操作,并且B是新的malloced(或重新分配)内存:

在此输入图像描述

这是我在代码中的方式:

stud = (student*)realloc(stud, 8*sizeof(student));
Run Code Online (Sandbox Code Playgroud)

据我所知,realloc在第二个参数中获取变量,mallocs获取内存量.然后,它接受指针(或之前的malloced),并尽可能多地从给定指针填充malloced内存.当然,第二个参数必须大于之前的malloced大小,否则stud最终会丢失一些内存.现在这就是我的问题所在.当我调用上面的行时,它不会改变任何东西.malloced数组仍然是7的长度.我也很确定,我有足够的内存来重新分配.

我这样做了吗?我的问题在哪里?

c malloc struct realloc

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

Proguard在合并的库清单中模糊了活动名称

我有几个使用公共库项目的应用程序项目.我最近尝试将每个应用程序项目的AndroidManifest.xml中的一些常见Activity声明移动到库的清单中,并启用了与manifestmerger.enabled=truein 合并的清单project.properties.

在调试版本中一切正常,但发布版本(由Proguard混淆)失败了ActivityNotFoundException.这是因为Proguard混淆了库清单中声明的​​活动的名称,而不是应用程序清单中的活动名称.

我已经检查了bin/AndroidManifest.xml应用程序项目的合并文件,并且它正确地列出了活动名称.

有人可以建议一个解决方法吗?

android proguard

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

restartLoader和onContentChanged之间的区别

目前,我有一个装载机

@Override
public Loader<List<HomeMenuRowInfo>> onCreateLoader(int arg0, Bundle bundle) {
    return new HomeMenuRowInfosLoader(this.getSherlockActivity());
}
Run Code Online (Sandbox Code Playgroud)

有时,由于内容更改,我需要让加载程序重新加载.我会做的.

this.getLoaderManager().getLoader(0).onContentChanged();
Run Code Online (Sandbox Code Playgroud)

但是,我希望onCreateLoader在内容更改时将一些其他捆绑信息传递给回调.我意识到通过使用onContentChanged,没有办法这样做.

我能搞清楚的唯一方法是

this.getLoaderManager().restartLoader(0, bundle, this);
Run Code Online (Sandbox Code Playgroud)

我想知道,是否有任何重大分歧Loader的行为,使用的restartLoader不是onContentChanged,除了捆绑传递的能力吗?

android android-loadermanager android-loader

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