我想在我的Android手机(Moto Droid)中添加整个医学字典.我希望能够发送短信并将医学词汇放在可预测的文本中.
我一直在尝试编写一个可以实现此目的的小应用程序,但是我尝试应用程序的所有内容都会在启动时崩溃.我从来没有为移动平台编写应用程序,所以这对我来说是第一次.这是不正常的.
public class WordAdd extends Activity {
/** Called when the activity is first created. */
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
UserDictionary.Words.addWord( this , "newMedicalWord", 1, UserDictionary.Words.LOCALE_TYPE_CURRENT);
}
Run Code Online (Sandbox Code Playgroud)
}
这似乎很简单,但我很困难.感谢您的任何帮助,您可以提供.
编辑:我应该提到我在AVD(虚拟设备)中得到Android 2.1的这个错误.
编辑2: 用户词典可在Android API中找到.addWord是一个静态方法.我没有声明UserDictionary,因为我只使用一个静态方法.自从我用Java开发任何东西以来已经很久了,这是我在任何移动开发中的第一次尝试,所以我不知道我做错了什么.
相关问题: git和Git 不接受netrc - 如何在windows上使用.netrc文件保存用户和密码
我正在尝试将更改推送到code.google.com git存储库.我正在使用Git Extensions.我的HOME变量在Windows和Git Bash中都设置了.
C:\> echo %HOME%
C:\Users\Username
$ echo $HOME
/c/Users/Username
Run Code Online (Sandbox Code Playgroud)
我在%HOME%中添加了一个名为_netrc的文件
machine code.google.com
login username@gmail.com
password GOOGLEGENERATED
Run Code Online (Sandbox Code Playgroud)
显然,用户名被我的用户名取代,而GOOGLEGENERATED是谷歌生成的密码.尝试推送时,我收到此错误消息:
C:\ Program Files\Git\bin\git.exe push -u --recurse-submodules = check"origin"master:master Done fatal:remote error:用户名/密码无效.您可能需要使用生成的googlecode.com密码; 请参阅https://code.google.com/hosting/settings
相关问题表明一切设置正确,但仍然无效.有任何想法吗?
背景:
我们的应用程序是一个用于更大应用程序的插件.我们创建的所有内容都是较大的应用程序挂钩的DLL文件.因此我们的.NET(C#)必须为COM接口注册DLL文件.
我们有一个有效的InstallShield项目,但由于很多原因我不打算在这里进行,我们希望将它迁移到WiX.对安装程序唯一要做的就是为COM注册我们的DLL文件.
问题
这是一个包含单个DLL文件的示例组件.
<Component Id="MyComponent" Guid="COMPONENT-GUID" SharedDllRefCount="yes" >
<File Id="MyDLL.dll" Name="MyDLL.dll" KeyPath="yes" Assembly=".net"
AssemblyManifest="MyDLL.dll" AssemblyApplication="MyDLL.dll" />
</Component>
Run Code Online (Sandbox Code Playgroud)
根据接受的答案如何在WiX 3中注册Win32 COM DLL文件?,建议添加SelfRegCost=1到File标签.这会导致安装期间出错:
模块C:\ Program files\Product\MyDll.dll无法注册.HRESULT -2147024769.联系您的支持人员.
同一问题中的第二个答案(由Rob Menshing提出)建议不要采用这种方法,但要在文件标签内添加:
<Class Id="PUT-CLSID-HERE" Context="InprocServer32" ThreadingModel="apartment" Description="Your server description">
<ProgId Id="Your.Server.1" Description="Your ProgId description">
<ProgId Id="Your.Server" Description="Your ProgId description" />
</ProgId>
</Class>
<Class Id="PUT-PROXY-CLSID-HERE" Context="InprocServer32" ThreadingModel="both" Description="Your server Proxies, assuming you have them">
<Interface Id="PUT-INTERFACEID-HERE" Name="IInterface1" />
<Interface Id="PUT-INTERFACEID-HERE" Name="IInterface2" />
<Interface Id="PUT-INTERFACEID-HERE" …Run Code Online (Sandbox Code Playgroud) 我需要在一个线程中运行一个给定参数的方法.我注意到,当我运行它时,参数是错误的.对于给出的示例,我有一个int[] output数字为1-7 的数组.对于每个数字,我使用该方法创建一个线程WriteInt(i).我希望输出在任何顺序都是1-7,但我一直看到一些数字遗漏,其他人重复.发生了什么以及启动这些线程的正确方法是什么?
(该列表仅在此后加入线程)
class Program
{
static void Main(string[] args)
{
int[] output = { 1, 2, 3, 4, 5, 6, 7 };
List<Thread> runningThreads = new List<Thread>();
foreach (int i in output)
{
Thread thread = new Thread(() => WriteInt(i));
thread.Start();
runningThreads.Add(thread);
}
foreach(Thread t in runningThreads)
{
t.Join();
}
}
private static void WriteInt(int i)
{
Console.WriteLine(i);
}
}
Run Code Online (Sandbox Code Playgroud)
示例输出:
3
3
4
5
6
7
Run Code Online (Sandbox Code Playgroud) This is my first post on SO, so be gentle. I'm not even sure if this belongs here, but here goes.
我想访问我的一个个人帐户的一些信息.该网站写得不好,要求我手动输入我想要的信息日期.这确实很痛苦.我一直在寻找借口来学习更多Perl所以我认为这将是一个很好的机会.我的计划是编写一个Perl脚本,该脚本将登录到我的帐户并为我查询信息.但是,我很快陷入困境.
my $ua = LWP::UserAgent->new;
my $url = url 'https://account.web.site';
my $res = $ua->request(GET $url);
Run Code Online (Sandbox Code Playgroud)
生成的网页基本上表示我的网络浏览器不受支持.我尝试了许多不同的值
$ua->agent("");
Run Code Online (Sandbox Code Playgroud)
但没有任何事情似乎有效.谷歌周围建议使用这种方法,但它也表示perl在网站上被用于恶意原因.网站阻止这种方法吗?我甚至想做什么?是否有更合适的不同语言?我正在努力做甚至合法甚至是好主意?也许我应该放弃我的努力.
请注意,为了防止泄露任何私人信息,我在这里写的代码不是我正在使用的确切代码.但我希望这很明显.
编辑:在FireFox中,我禁用了JavaScript和CSS.我没有"不兼容的浏览器"错误就登录了.它似乎不是JavaScript问题.
我在lambda中有一个lambda,在for循环中有一个loop变量参数.当我运行它时,我希望输出数字0-9.但由于它是一个lambda,x不会立即得到评估.
for( int x = 0; x < n; ++x)
{
vec.push_back(thread{[&x](){
m.lock();
cout << x << endl;
m.unlock();
}});
}
Run Code Online (Sandbox Code Playgroud)
输出:
0
3
3
9
Run Code Online (Sandbox Code Playgroud)
等等
其他语言的解决方案是创建一个临时变量,
for( int x = 0; x < n; ++x)
{
int tmp = x;
vec.push_back(thread{[&tmp](){
m.lock();
cout << tmp << endl;
m.unlock();
}});
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不起作用.
请参阅接收错误参数的线程
奖金:
在我寻找答案的过程中,我偶然发现了这个问题, 概括了C++ 11 Threads类以使用lambda ,它建议不使用会使迭代器无效的容器.为什么会这样?
我有一个带有功能和两个子功能的WIX安装.我希望该功能是必需的,并且两个子功能是可选的,但默认情况下不安装.这是我的功能树:
<Feature Id="A" Level="3" AllowAdvertise="no" TypicalDefault="install"
InstallDefault="local" Absent="disallow" >
<Feature Id="A1" Level="1" AllowAdvertise="no" />
<Feature Id="A2" Level="1" AllowAdvertise="no" />
</Feature>
Run Code Online (Sandbox Code Playgroud)
我想添加:
<Property Id="INSTALLLEVEL" Value=3 />
Run Code Online (Sandbox Code Playgroud)
将设置主要功能安装和子功能不安装.情况并非如此; 默认情况下安装所有功能.
我正在使用WixUI_FeatureTree.我想知道这是否会搞乱INSTALLLEVEL属性.
那么我正在尝试甚至可能吗?如何默认禁用这两个子功能?
编辑:有趣.我重新设置INSTALLLEVEL=1000并尝试了,所有功能仍然设置为安装.WixUI_FeatureTree会破坏INSTALLLEVEL吗?
我正在尝试更新一个简单的ms访问数据库.我在某些表上得到一个Exception,在搜索之后,我发现了Microsoft支持 - 语法错误.我相信这意味着其中一个列名使用保留字.这似乎是这种情况,因为除了具有"GUID"作为列名之一的保留字之外,所有表都更新.这个页面还说明我应该使用OleDbAdapter和DataSet来解决这个问题.不幸的是我无法更改列的名称.这是我无法控制的,所以我必须与给予我的东西一起工作.
我没有必要对数据库做太多工作,而且我所知道的一切都是从互联网上的例子中学到的(可能是坏的).那么使用OleDbAdapter和dataSet更新数据库的正确方法是什么?
我不认为我应该使用DataTable或OleDbCommandBuilder,我相信解决方案与参数有关.但我的谷歌技能很弱.
OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; " +
Data Souce=" + source);
conn.Open();
OleDbAdapter adapter = new OleDbDataAdapter("SELECT * From " + table, conn);
OleDbCommandBuiler cmdBuiler = new OleDbCommandBuilder(adapter);
DataSet = new DatSet();
adapter.InsertCommand = cmdBuilder.GetInertCommand(true); // Is this necessary?
adapter.Fill( dataSet, table);
DataTable dataTable = dataSet.Tables[table]; // Do I need a DataTable?
DataRow row = dataTable.
row [ attribute ] = field; // Do this for all attributes/fields. I think this is wrong. …Run Code Online (Sandbox Code Playgroud) 类似问题:重用 WIX 组件来加速蜡烛/灯
我的项目与引用的项目有相同的问题;每次需要构建时,都会将一个从不更改的非常大的静态数据库压缩到 msi 中。我想按照问题的要求做:重用预压缩的 cab 文件以加快构建时间。
我开始按照答案建议使用 cabCache 属性。我在 .wixproj 中添加了以下内容:
<CabinetCachePath>cabs</CabinetCachePath>
<ReuseCabinetCache>True</ReuseCabinetCache>
Run Code Online (Sandbox Code Playgroud)
然后我将静态数据分离成一个片段:
<Fragmet>
<Media Id="2" Cabinet="static.cab" EmbedCab="no" />
<Component Id="staticCab" Guid="..." >
Files ...
</Component>
Run Code Online (Sandbox Code Playgroud)
该片段在功能中被引用:
<ComponentRef Id="staticCab" />
Run Code Online (Sandbox Code Playgroud)
这创建了 cab 文件,但将其留空。我的下一个想法是使用合并模块。我创建了模块:
<Module Id="StaticModule" Language="1033" Version="1.0.0.0" >
<Package ...>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="MergeRedirectFolder" Name=".">
<Component Id="StaticFiles" Guid="...">
Files...
</ -- End all XML Tags
Run Code Online (Sandbox Code Playgroud)
然后合并它:
<Directory Id="StaticDir" Name="static">
<Merge Id="StaticModule" Language="1033" src="..\Static\bin\Release\static.msm" />
</Directory>
<Feature ...>
<MergeRef Id="StaticModule"/>
</Feature>
Run Code Online (Sandbox Code Playgroud)
即使在这一切之后,CabinetCache 仍然每次都在重建。
我想我的问题是使用 ReuseCabinetCache 的正确方法是什么。我仍在学习 …