Eclipse

From AdLocus
Revision as of 19:11, 14 October 2016 by Marschen (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Eclipse

需要加入的library如下

AdLocusLib_3_5_6
google-play-services_lib
support-v4-24.1.0

更換android SDK 底下的proguard(如果需要)

如果您android SDK內的不支援proguard不支援java 8
請將android SDK 內的proguard更新 
SDK參考路徑 ../sdk/tools/proguard
或參考此文 
http://stackoverflow.com/questions/22670059/error-proguard-unsupported-class-version-number

APP內需要調整的部分

libs內需要新增的jar如下

adlocus_3.5.6.jar
org.apache.http.legacy.jar
檔案在project內的 ../AdlocusTest/libs

AndroidManifest.xml

<manifest 
 ...>
  <uses-sdk
       android:minSdkVersion="16"
       android:targetSdkVersion="24" />
   <uses-permission android:name="android.permission.INTERNET" />
   <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
   <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
   <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
   <application
       ...>
       <meta-data android:name="com.google.android.gms.version"
       android:value="@integer/google_play_services_version" />
       </activity>
               <provider
           android:name="com.adlocus.util.MultiProcessPreferences"
           android:authorities="your app package.ADLOCUS_CONTENT"
           android:exported="false" />
       <activity android:name="com.adlocus.AdActivity"
           android:theme="@style/AdLocusDialogTheme"
           android:launchMode="singleTask"
           android:excludeFromRecents="true"
           >
       </activity>
       <activity
           android:name="com.adlocus.VideoAdActivity"
           android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
           android:launchMode="singleTask"
           android:hardwareAccelerated="true"
           >
       </activity>
       <service android:name="com.adlocus.push.PushService"
           android:process=":adlocus">
       </service>
       <receiver
           android:enabled="true"
           android:name="com.adlocus.push.PushReceive"
           android:process=":adlocus">
           <intent-filter>
               <action android:name="android.intent.action.BOOT_COMPLETED" />
               <category android:name="android.intent.category.DEFAULT" />
           </intent-filter>
           <intent-filter>
               <action android:name="com.adlocus.action.RECEIVE" />
           </intent-filter>
       </receiver>       
       </application>
</manifest>

Proguard內請新增以下程式碼

#google support v4
 
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.** { *; }
 
#apache 
 
-keep class org.apache.http.** { *; }
-dontwarn org.apache.http.**
-dontwarn android.net.**
 
#google gms
 
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
    public static final *** NULL;
}
 
-keepnames class * implements android.os.Parcelable
-keepclassmembers class * implements android.os.Parcelable {
  public static final *** CREATOR;
}
 
-keep @interface android.support.annotation.Keep
-keep @android.support.annotation.Keep class *
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
  @android.support.annotation.Keep <methods>;
}
 
-keep @interface com.google.android.gms.common.annotation.KeepName
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
  @com.google.android.gms.common.annotation.KeepName *;
}
 
-keep @interface com.google.android.gms.common.util.DynamiteApi
-keep public @com.google.android.gms.common.util.DynamiteApi class * {
  public <fields>;
  public <methods>;
}
 
-dontwarn android.security.NetworkSecurityPolicy
 
#adlocus 
 
-keepattributes InnerClasses
 
-keep class com.adlocus.AdLocusLibrary.R
-keep class com.adlocus.AdLocusLibrary.R$* {
    <fields>;
}
-keep public class com.adlocus.** {*;}
-keep class com.adlocus.adapters.AdLocusAdapter$MyJavaScriptInterface{<methods>;}


就這麼簡單,您已完成SDK的前期作業。