1. ホーム
  2. アンドロイド

インテントのパスパラメータが無効で、FAILED BINDER TRANSACTIONと表示されました。

2022-03-16 04:47:37

プロジェクトのシナリオ

メインインターフェイスでポストデバイスを選択した後、インテントを介して座標パラメータを渡し(ビーンクラスに緯度と経度を入れて渡す)、次のインターフェイスでマップapiを呼び出してデバイスの位置を特定し、表示する。


質問の説明

意図して適切な情報を追加した後、ジャンプボタンをクリックしてもインターフェースはジャンプ効果を出さず、メインインターフェースに留まり、同じロジックを持つ別のモジュールは正常にジャンプします。





メインインターフェイスでデータを受け渡し、ジャンプするためのコード。

   var path = "~/App_Data/7z/7z.dll";
   SevenZipBase.SetLibraryPath(path);

次のインターフェイスでメッセージを受信するためのコードです。

                var tmp = new SevenZipCompressor(); //7z compression
                tmp.ScanOnlyWritable = true; //writable only
                //tmp.CompressFiles() This has three overloads, here's just one of the more commonly used ones.
                //public void CompressFiles(string archiveName, params string[] fileFullNames)
                //archiveName:This represents where the generated 7z file exists
                //fileFullNames: this parameter is to compress the files is an array of params, pay special attention to must be the full path name to be valid
                tmp.CompressFiles(@"D:\max\arch.7z", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test.txt", @" D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test1.txt");

                //CompressDirectory Compress all the files under the specified path, this has 12 overloads, also only one of them is simple.
               // public void CompressDirectory( string directory, string archiveName) 
                tmp.CompressDirectory(@"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug", @"arch.7z");


原因分析。

まず、ジャンプコードが実行されているかどうかを判断したところ、実行されていました。次に、クリックイベントとジャンプコードを別のコントロールに追加してみました。デバッグの結果、問題はこのコードの行にあることがわかりました。

   var tmp = new SevenZipCompressor();
   tmp.CompressFilesEncrypted(@"D:\max\jiami.7z", "123456", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin \Debug\test1.txt", @"D:\max\SourceCode\DataExch\SevenZipSharpDemo\bin\Debug\test.txt")

デバッグ時のコンパイラーエラーです。 !!! バインダートランザクションの失敗 !!!

少しググってみたところ、パラメータを渡しすぎている可能性があるという結果で、インテントで渡されるデータのサイズは40kbを超えてはいけないということでした。


解決策

早速このbeanlistのサイズを確認したところ、6000行以上のデータがあり、削除を行わなかった結果であるはずなので、beanlistから不要なbeanを消去したところ、正常にジャンプするようになりました。