您的Android JNI应用中出现上述错误?继续阅读......
在前面,我会说我已经用我自己的方式解决了这个问题,但是我觉得Android构建系统中的某些内容(可能是关于Eclipse)已经破了,我希望能够为其他人节省数小时的痛苦.也许其他人已经遇到过这个问题,可以评论对他们有用的东西.
有一段时间,我有一个Android项目,其中包含一些我使用NDK开发的JNI代码.然后,今天,我在java代码中改变了一些东西,然后poof,我再也无法加载我的JNI库了.它失败了,例如:
E/AndroidRuntime(999):java.lang.UnsatisfiedLinkError:无法加载mylibrary:findLibrary返回null
我用Google搜索并尝试了所有内容(重建,关闭和重新启动Eclipse等等)
什么最终解决了我的问题?在尝试另一次运行之前,我从设备上物理卸载了我的应用程序.而已.在那之后,它奏效了.什么对你有用?
我想我可以把它扔到那里然后问:我已经看到Delphi控件在图形效果方面完美无缺.含义:没有闪烁,分段更新(仅重绘标记为脏的控件部分)和平滑滚动.
我已经编写了很多多年来图形控制的,所以我知道双缓冲,DIBS,bitblts和所有的"共同"的东西(我一直使用的DIB如果可能的话绘制的一切,但有一个开销).还要了解InvalidateRect并检查需要更新的实际rect的TCanvas.ClipRect.尽管有这些典型的解决方案,但我发现创建与Developer Express或Razed Components相同质量的组件非常困难.如果图形是平滑的,你可以打赌滚动条(本机)闪烁,如果滚动条和框架是平滑的,你可以在滚动期间发誓背景闪烁.
是否有标准的代码设置来处理这个问题?一种确保平滑重绘整个控件的最佳实践 - 包括控件的非客户区域?
例如,这是一个"裸骨"控件,它为分段更新占用高度(仅重绘所需的内容).如果在表单上创建它,请尝试在其上移动一个窗口,然后观察它用颜色替换部件(请参阅绘制方法).
有没有人有类似的基类可以处理非客户区重绘而不闪烁?
type
TMyControl = Class(TCustomControl)
private
(* TWinControl: Erase background prior to client-area paint *)
procedure WMEraseBkgnd(var Message: TWmEraseBkgnd);message WM_ERASEBKGND;
Protected
(* TCustomControl: Overrides client-area paint mechanism *)
Procedure Paint;Override;
(* TWinControl: Adjust Win32 parameters for CreateWindow *)
procedure CreateParams(var Params: TCreateParams);override;
public
Constructor Create(AOwner:TComponent);override;
End;
{ TMyControl }
Constructor TMyControl.Create(AOwner:TComponent);
Begin
inherited Create(Aowner);
ControlStyle:=ControlStyle - [csOpaque];
end;
procedure TMyControl.CreateParams(var Params: TCreateParams);
begin
inherited CreateParams(Params);
(* When a window has this style …
Run Code Online (Sandbox Code Playgroud) 尝试在单个生产者多个消费者方案中使用TThreadedQueue(Generics.Collections).(DELPHI-XE).我们的想法是将对象推入队列,让几个工作线程排空队列.
但它没有按预期工作.当两个或多个工作线程调用PopItem时,将从TThreadedQueue抛出访问冲突.
如果对PopItem的调用是使用临界区序列化的,那么一切都很好.
当然,TThreadedQueue应该能够处理多个消费者,所以我错过了什么或者这是TThreadedQueue中的一个纯粹的错误?
这是一个产生错误的简单示例.
program TestThreadedQueue;
{$APPTYPE CONSOLE}
uses
// FastMM4 in '..\..\..\FastMM4\FastMM4.pas',
Windows,
Messages,
Classes,
SysUtils,
SyncObjs,
Generics.Collections;
type TThreadTaskMsg =
class(TObject)
private
threadID : integer;
threadMsg : string;
public
Constructor Create( ID : integer; const msg : string);
end;
type TThreadReader =
class(TThread)
private
fPopQueue : TThreadedQueue<TObject>;
fSync : TCriticalSection;
fMsg : TThreadTaskMsg;
fException : Exception;
procedure DoSync;
procedure DoHandleException;
public
Constructor Create( popQueue : TThreadedQueue<TObject>;
sync : TCriticalSection);
procedure Execute; override;
end;
Constructor TThreadReader.Create( popQueue : …
Run Code Online (Sandbox Code Playgroud) 我无法找到解决此问题的方法.我收到错误:
Please install the mysql adapter: 'gem install activerecord-mysql-adapter'
/Users/ Andy/.rvm/gems/ruby-1.9.2-p290@global/gems/bundler-1.0.21/lib/bundler/rubygems_integration.rb:143:in `block in replace_gem': Please install the mysql adapter: `gem install activerecord-mysql-adapter` (mysql is not part of the bundle. Add it to Gemfile.) (LoadError)
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/mysql_adapter.rb:5:in `<top (required)>'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `block in require'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:236:in `load_dependency'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:251:in `require'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:48:in `resolve_hash_connection'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:39:in `resolve_string_connection'
from /Users/ Andy /mysql2/ruby/1.9.1/gems/activerecord-3.2.1/lib/active_record/connection_adapters/abstract/connection_specification.rb:23:in `spec'
from /Users/ Andy …
Run Code Online (Sandbox Code Playgroud) 由于就VCL而言,TTabSheets不是表单的父级(不想使用动态RTL和其他语言的插件),我必须手动处理调整大小.我这样做如下:
var
ChildHandle : DWORD;
begin
If Assigned(pcMain.ActivePage) Then
begin
ChildHandle := FindWindowEx(pcMain.ActivePage.Handle, 0, 'TfrmPluginForm', nil);
If ChildHandle > 0 Then
begin
SetWindowPos(ChildHandle, 0, 0, 0, pcMain.ActivePage.Width, pcMain.ActivePage.Height, SWP_NOZORDER + SWP_NOACTIVATE + SWP_NOCOPYBITS);
end;
end;
Run Code Online (Sandbox Code Playgroud)现在,我的问题是当应用程序调整大小时,TGroupBox中的所有TGroupBox和TLabel都会闪烁.不在TGroupboxes内的TLabel很好,不会闪烁.
我试过的事情:
有任何想法吗?
我正进入(状态
"src-resolve:无法将名称'j2ee:descriptionType'解析为(n)'类型定义'组件."
我的xsd文件中的这个错误.
请帮我解决这个问题.
我需要访问一个严格的受保护属性,因为我需要创建一个验证(基于此属性的值)以避免错误.(我没有具有此属性的第三方类的源代码)只有我有类(接口)和dcu的定义(所以我无法更改属性可见性).问题是存在一种访问严格受保护财产的方法吗?(我真正读懂了Hallvard Vassbotn博客,但我不觉得这个特定主题参选.)
我正在使用以下函数来修补现有对象的实例类.原因是我需要修补第三方类的受保护功能.
procedure PatchInstanceClass(Instance: TObject; NewClass: TClass);
type
PClass = ^TClass;
begin
if Assigned(Instance) and Assigned(NewClass)
and NewClass.InheritsFrom(Instance.ClassType)
and (NewClass.InstanceSize = Instance.InstanceSize) then
begin
PClass(Instance)^ := NewClass;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但由于某种原因,只有在我自己的单元中定义基类时,代码才有效.为什么?是否有一种解决方法可以让它在没有它的情况下工作?
这不起作用
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, wwdblook, Wwdbdlg;
type
TwwDBLookupComboDlg = class(Wwdbdlg.TwwDBLookupComboDlg); // This is necessary
TForm1 = class(TForm)
Button1: TButton;
wwDBLookupComboDlg1: TwwDBLookupComboDlg;
procedure FormCreate(Sender: TObject);
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
type
TButtonEx = class(TButton)
end;
TwwDBLookupComboDlgEx = class(TwwDBLookupComboDlg)
end; …
Run Code Online (Sandbox Code Playgroud) 第二次编译项目时,我收到以下错误消息.我必须关闭VS 2010并在重新加载时进行编译.如果我做出改变,那么问题就会出现.
"无法复制文件"obj\x86\Debug\MyFile.dll".无法对打开用户映射部分的文件执行请求的操作."
试图为iPad制作基于故事板的应用程序.在其中我需要从开始屏幕(UIViewController)转换到主屏幕(UISplitViewController)然后转换到全屏视图(再次UIViewController).
我在网上看到了很多讨论(至少有几个 - 关于stackoverflow),说明UISplitViewController不能在基于Storyboard的应用程序中以任何其他方式使用,而不是RootViewController.一些线程包含解决方法,还有替代splitview(https://github.com/mattgemmell/MGSplitViewController)来处理这个问题.
但我无法理解的是,为什么Apple文档恰恰相反.这是Apple iOS 5.0库中章节的链接.它指出:
要将拆分视图控制器添加到应用程序的故事板:
要显示拆分视图界面,请执行以下操作之一:
我在很多方面尝试过它,但最后两个语句中描述的方法从未奏效.modal segue和performSegue都失败了,众所周知的错误:
"***由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'应用程序试图以模态方式呈现拆分视图控制器......"
有人能够解释一下吗?这是XCODE/iOS 5.0中的错误还是文档中的错误?
此致,彼得
delphi ×5
delphi-xe ×3
android-ndk ×1
c# ×1
delphi-2007 ×1
delphi-xe2 ×1
flicker ×1
graphics ×1
groupbox ×1
msbuild ×1
mysql ×1
mysql2 ×1
queue ×1
segue ×1
storyboard ×1
tpagecontrol ×1
winapi ×1
xna ×1
xsd ×1