سؤال

أنا أستخدم الهوائي لبناء وحزم و Obfuscate A J2ME. بناء والتعبئة يعمل بشكل جيد.

يستخدم المشروع جرة الطرف الثالث الذي يبعث بالفعل باستثناء بعض الواجهات.

عند محاولة التبويع، حصلت على العديد من الأخطاء مثل:

[wtkobfuscate] Warning: i: can't find referenced class fooPackage.fooClass

فئة I و Foopackage.fooclass من جرة الطرف الثالث التي ذكرتها.

تحديث:

تستخدم مكتبة الطرف الثالث هذه J2ME-XMLRPC.jar. إذا لم أقم بتعبئها معا، فلن أتمكن من توضيح واجهات الطرف الثالث و J2ME-XMLRPC.JAR. (ولا يمكنني تشغيل التطبيق بهذه الطريقة، لست متأكدا من السبب

إذا قمت بحزم فقط J2ME-XMLRPC.JAR ودروس المشروع الخاصة بي أحصل على هذا الخطأ أثناء ظهوره

[wtkobfuscate] Warning: there were 2 instances of library classes depending on program classes.

تحديث 2:

أعرف أن هذا التعرض ممكن beacause في netbeans يمكنني القيام بالامتثال باستخدام proguard.

نظرا لأن NetBeans Internelal تستخدم النمل لجعل المباني التي حاولت نسخها Build.xml التي تم إنشاؤها إلى Build.xml الخاص بي.

بالنسبة إلى Netbeans Obfuscation يستخدم مكتبة Org-Netbeans-Modules-Mobility-Antext.jar التي يمكن استخدامها خارج شبكات الصليب الأصغر. لقد استوردت هذه المكتبة إلى مشروعي واستخدمها دون مشكلة.

لكنني أحصل على نفس الخطأ الذي استخدمته هوائي.

تنشئ البهجة في NetBeans الكثير من التحذيرات ولكنها لا تزال تنشئ جرة OfffCated.

ما أفتقده؟

هل كانت مفيدة؟

المحلول 2

كنت أستخدم Proguard 4.3. خفض إلى Proguard 4.2 حل المشكلة.

نصائح أخرى

إذا كانت مكتبة الأحزاب الثالثة توضح، فلا تقم بتضمين تلك المكتبة أثناء توضيح فصولك. بدلا اتبع هذه الخطوات

  1. جرة دروسك وحدها (لا تشمل مكتبة الطرف الثالث)
  2. obfuscate جرة تم الحصول عليها في الخطوة 1
  3. unjar jar obfcated تم الحصول عليها في الخطوة 2 ومكتبة الطرف الثالث في بعض مجلد TEMP
  4. جرة كل الطبقات غير المدبرة
  5. preferify وحزمها مرة أخرى

حاول استخدام jshrink. لدي نتائج أفضل بكثير معها ثم مع Proguard:

                    <java jar="obfuscator\jshrink.exe" fork="true">
                        <arg value="..\${projectdir}\${projectname}.jar"/>
                        <arg value="-classpath"/>
                        <arg pathref="project.class.path"/>
                        <arg value="-keep"/>
                        <arg value="${midletclass}"/>
                        <arg value="-o"/>
                        <arg value="..\${projectdir}\${projectname}.jar"/>
                    </java>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top