Cordova Android Plugin – R を使わずにリソースにアクセス

2019年11月26日

id の代わりに tag を使う

<1>

LayoutInflater inflater = (LayoutInflater) this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
int idLayoutActivityMain = getApplication().getResources().getIdentifier("activity_main", "layout", getApplication().getPackageName());
rootView = inflater.inflate(idLayoutActivityMain, null);
setContentView(rootView);

ImageView imageView = rootView.findViewWithTag("imageView" );

<2>Layout XMLにはidの代わりにtagを追加
【activity_main.xml】
<ImageView
    android:id="@+id/imageView"
    android:tag="imageView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:scaleType="centerInside"
    tools:srcCompat="@tools:sample/backgrounds/scenic" />

Unknown Report Version: 9.0

2019年5月18日

Report Viewer のRDLCファイルをVisualStudio2017で開くと、最新バージョンのフォーマットに変換され、それを保存する際に「Unknown Report Version: 9.0」というエラーが表示されて保存できない場合、RDLCファイルを単独で(プロジェクトの中ではなく)VisualStudio2017で開いて保存し、再度プロジェクトの中で開くとエラーは発生しない。

参照リンク
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/32a4bd77-17fa-46c6-947f-fb15e05428cd/unknown-report-version-90-vs-2017-enterprise-ssdt-151?forum=sqlreportingservices

CVPACK Fatal Error CK1023

2019年5月7日

VC6 のプロジェクトを別のマシンにコピーしてリビルドするとこのエラーが発生。しかし、再度ビルドすると普通にビルドできる。ところが生成されるEXEのサイズが大きい。

このページの指示に従って、該当するプロジェクトをリビルドしたところ、エラーは解消され、EXEのサイズも元に戻った。
https://docs.microsoft.com/ja-jp/previous-versions/windows/embedded/cc417445(v=msdn.10)

OCI_ConnectionCreate で ora-12154 エラー

2018年11月26日

OCI_ConnectionCreate で ora-12154 エラーが発生

OCILIBをDebugでビルドしてデバッグしてみた結果ー>UnicodeのOCILIBW.DLL に ascii でデータベース名を渡していたのが原因でした。

HttpURLConnection で FileNotFoundException

2018年11月26日

サーバーがエラーを返した場合は
FileNotFoundException
になるらしい。

https://developer.android.com/reference/java/net/HttpURLConnection#getErrorStream()

.Net Windows Forms Browser Control で スクリプトとアプリ間のコミュニケーション

2018年11月8日

.Net Windows Forms の Browser Control でDHTMLコンテンツのスクリプトからアプリ側のメソッドを呼び出すには

FormのLoadイベントで

webBrowser1.ObjectForScripting = this;

を設定し、スクリプトで

window.external.<メソッド名>

のように呼び出す。

 

逆に、アプリからDHTMLのスクリプトを呼び出すには

webBrowser1.Document.InvokeScript

を使う。

 

https://docs.microsoft.com/en-us/dotnet/framework/winforms/controls/implement-two-way-com-between-dhtml-and-client

WinServer2012のIISでWCFアプリケーション(*.svc)が動かない

2018年10月24日

開発マシン(Win10)とIISの設定を比べてみると、Handler Mapping に *.svc がないことが判明。
https://stackoverflow.com/questions/11116134/wcf-on-iis8-svc-handler-mapping-doesnt-work
この記事を参考に、WCF の HTTP Activation を有効にすると動くようになった。

WCFでSoapメッセージにDataConrtractSerializerではなくXmlSerializerを使いたい

2018年10月22日

WCFでは、デフォルトではDataConrtractSerializerが使われるようですが、このままだと XmlAttribute などの属性が正しく反映されず、XMLでAttributeにすべき項目がElementとして出力されてしまうようで…

XmlSerializerを使うには、サービス定義に XmlSerializerFormat 属性を追加します。(※メッセージのほうではなくて、サービス定義のほうに指定する必要があるらしい。)

[ServiceContract, XmlSerializerFormat]
public interface IService1
{
/// <remarks/>
[OperationContract, XmlSerializerFormat]
void OTA_PingRS(PingRSRequestMessage pingRSMsg);
}

メッセージBodyは上記の方法でOK。

 

一方、メッセージHeaderについては、MessageHeader.CreateHeader() のパラメータでSerializerが指定できそうなので楽だろうと思いきや、

このパラメータでは System.Runtime.Serialization.を継承するクラスしかしていできず、System.Xml.Serialization.XmlSerializer は使えないらしく…

いろいろ試行錯誤した後、ヘッダーの値を保持するクラスに IXmlSerializable を実装させて、WriteXml() メソッドの中で、Serializeの方法を記述する方法を試したら希望通りのメッセージになりました。面倒ですが、とりあえずはこれで何とかなりそう…

 

package android.support.v4.app does not exist

2018年10月11日

古いプロジェクトを開いたらこのエラーが出た。

https://stackoverflow.com/questions/24545576/package-android-support-v4-app-does-not-exist-in-android-studio-0-8

上記リンクを参照し

app -> Open module settings を開いて
Dependency タブを開き、 “+”をクリック, “com.android.support:support-v4:22.2.1″を選んで OK

Could not find com.android.tools.build:aapt2:3.2.0-4818971

2018年10月11日

古いプロジェクトを久しぶりに開いてみたらこのエラーが出た。
https://stackoverflow.com/questions/52541525/android-studio-3-2-could-not-find-com-android-tools-buildaapt23-2-0-4818971/52542837#52542837

上記のリンクを参照し、build.gradle の allprojects.repositories に google() を追加して解消