2017-07-29 10 views
6

すべてのものの仕事の罰金これらの値を設定した後Android proguardの問題:パスをnullまたは空の文字列にすることはできません。私はプロジェクトを実行するたびにパス= 'NULL'

minifyEnabled true

shrinkResources true

を設定する前に、私はこのエラーを取得:

Information:Gradle tasks [:app:assembleProdRelease] 
Error:path may not be null or empty string. path='null' 
Information:BUILD FAILED 
Information:Total time: 23.606 secs 
Information:1 error 
Information:0 warnings 
Information:See complete output in console 

を何このエラーはエラーを意味しますか?path:nullまたは空の文字列ではない可能性があります。

signingConfigs { 
      release { 
       storeFile file('/home/rishabh/Documents/dekhoJks/release.jks') 
       storePassword "XXXXXXX" 
       keyAlias "XXXXXXXX" 
       keyPassword "XXXXXXXXX" 
      } 
     } 
     buildTypes { 
      release { 
       minifyEnabled true 
       //proguardFiles fileTree(dir: "proguard", include: ["*.pro"]).asList().toArray() 
       proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
       shrinkResources true 
       signingConfig signingConfigs.release 
      } 
     } 

と私はproguard.proに置くことができるすべての単一こいつ入れてみました:パス=「NULL」 ここではbuild.gradleある

-optimizationpasses 5 
-dontusemixedcaseclassnames 
-dontskipnonpubliclibraryclasses 
-dontskipnonpubliclibraryclassmembers 
-dontpreverify 
-verbose 
-dump class_files.txt 
-printseeds seeds.txt 
-printusage unused.txt 
-printmapping mapping.txt 
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/* 

-allowaccessmodification 
-keepattributes *Annotation* 
-renamesourcefileattribute SourceFile 
-keepattributes SourceFile,LineNumberTable 
-repackageclasses '' 

-keep public class * extends android.app.Activity 
-keep public class * extends android.app.Application 
-keep public class * extends android.app.Service 
-keep public class * extends android.content.BroadcastReceiver 
-keep public class * extends android.content.ContentProvider 
-keep public class * extends android.app.backup.BackupAgentHelper 
-keep public class * extends android.preference.Preference 
-keep public class com.android.vending.licensing.ILicensingService 
-dontnote com.android.vending.licensing.ILicensingService 

# Explicitly preserve all serialization members. The Serializable interface 
# is only a marker interface, so it wouldn't save them. 
-keepclassmembers class * implements java.io.Serializable { 
    static final long serialVersionUID; 
    private static final java.io.ObjectStreamField[] serialPersistentFields; 
    private void writeObject(java.io.ObjectOutputStream); 
    private void readObject(java.io.ObjectInputStream); 
    java.lang.Object writeReplace(); 
    java.lang.Object readResolve(); 
} 

# Preserve all native method names and the names of their classes. 
-keepclasseswithmembernames class * { 
    native <methods>; 
} 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet); 
} 

-keepclasseswithmembernames class * { 
    public <init>(android.content.Context, android.util.AttributeSet, int); 
} 

# Preserve static fields of inner classes of R classes that might be accessed 
# through introspection. 
-keepclassmembers class **.R$* { 
    public static <fields>; 
} 

# Preserve the special static methods that are required in all enumeration classes. 
-keepclassmembers enum * { 
    public static **[] values(); 
    public static ** valueOf(java.lang.String); 
} 

-keep public class * { 
    public protected *; 
} 

-keep class * implements android.os.Parcelable { 
    public static final android.os.Parcelable$Creator *; 
} 
##---------------End: proguard configuration common for all Android apps ---------- 

#---------------Begin: proguard configuration for support library ---------- 
-keep class android.support.v4.app.** { *; } 
-keep interface android.support.v4.app.** { *; } 
-keep class com.actionbarsherlock.** { *; } 
-keep interface com.actionbarsherlock.** { *; } 

# The support library contains references to newer platform versions. 
# Don't warn about those in case this app is linking against an older 
# platform version. We know about them, and they are safe. 
-dontwarn android.support.** 
-dontwarn com.google.ads.** 
##---------------End: proguard configuration for Gson ---------- 

##---------------Begin: proguard configuration for Gson ---------- 
# Gson uses generic type information stored in a class file when working with fields. Proguard 
# removes such information by default, so configure it to keep all of it. 
-keepattributes Signature 

# For using GSON @Expose annotation 
-keepattributes *Annotation* 

# Gson specific classes 
-keep class sun.misc.Unsafe { *; } 
#-keep class com.google.gson.stream.** { *; } 

# Application classes that will be serialized/deserialized over Gson 
-keep class com.example.model.** { *; } 

##---------------End: proguard configuration for Gson ---------- 

# If your project uses WebView with JS, uncomment the following 
# and specify the fully qualified class name to the JavaScript interface 
# class: 
#-keepclassmembers class fqcn.of.javascript.interface.for.webview { 
# public *; 
#} 




-keepclassmembers class android.support.design.internal.BottomNavigationMenuView { 
    boolean mShiftingMode; 
} 

-dontwarn com.fasterxml.** 
-dontwarn okio.** 
-dontwarn retrofit2.** 
-dontwarn com.fasterxml.jackson.databind.** 

# Basic ProGuard rules for Firebase Android SDK 2.0.0+ 
-keep class com.firebase.** { *; } 
-keep class org.apache.** { *; } 
-keepnames class com.fasterxml.jackson.** { *; } 
-keepnames class javax.servlet.** { *; } 
-keepnames class org.ietf.jgss.** { *; } 
-dontwarn org.apache.** 
-dontwarn org.w3c.dom.** 

-dontwarn com.firebase.ui.** 

-keepattributes Signature 

-dontwarn com.googlecode.mp4parser.** 
-dontwarn org.mp4parser.aspectj.runtime.reflect.** 
-keep class * implements com.coremedia.iso.boxes.Box { *; } 
-dontwarn com.coremedia.iso.boxes.** 
-dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.** 
-dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.** 

-keep class com.facebook.** { 
    *; 
} 

しかし、まだ、私を実行することができないがアプリ。私が間違っているところで助けてください。

+0

私もこのことに固執しています。 – Michael

答えて

0

解決策を得ました。

release { 
       storeFile file('/home/rishabh/Documents/dekhoJks/release.jks') 
       storePassword "XXXXXXX" 
       keyAlias "XXXXXXXX" 
       keyPassword "XXXXXXXXX" 
      } 

、代わりにそのことを別のsigning.propertiesファイルを作成します:

STORE_FILE=/home/XXX/XXX/XXX 
STORE_PASSWORD=XXXXXX 
KEY_ALIAS=XXXXXXXX 
KEY_PASSWORD=XXXXXXXXX 

enter image description here

とあなたのGradleで使用するだけで、ハードcodded署名の設定を置き換えます。 お手伝い願います!

+0

私の最後に問題を修正しません。 –

+0

も私のために働いていません。 – ggsrivas

1

2つの溶液

  • 次のクラスパスを使用します。 (私はバージョン2.3.2を使用していたとき、私はこのエラーを取得しました。)あなたは、クラスパスのバージョンを変更することができない場合

    classpath 'com.android.tools.build:gradle:2.2.2'

  • は一時的な修正のための分割APKオプションを無効にします。

+0

他の解決方法はありますか? – ggsrivas

+0

私は既にあなたに2つの選択肢を与えています。あなたは何をもっとやりたいですか? –

+1

これらのオプションは両方とも一時的です。あなたが本当の解決策を見つけたのかどうか疑問に思っていました。 – ggsrivas

関連する問題