Comments (4)
Sorry, any update on this?
from android-fat-aar.
@siddpande Hi,did you solved this already?any idea?Thanks~
from android-fat-aar.
No, had to move away from fat arr due to this issue.
from android-fat-aar.
you can filter none exist id,hope this will help you
`task generateRJava << {
println "Running FAT-AAR Task :generateRJava"
// Now generate the R.java file for each embedded dependency
def mainManifestFile = android.sourceSets.main.manifest.srcFile;
def libPackageName = "";
if(mainManifestFile.exists()) {
libPackageName = new XmlParser().parse(mainManifestFile).@package
}
def rClassFile = file("$generated_rsrc_dir/com/didi/unified/pay/R.java")
def rClassMap = new ConfigObject()
def subClassName = null
if (rClassFile.exists()) {
rClassFile.eachLine {
line ->
line = line.trim()
if(line.contains("public static final class ")) {
def subline = line.substring(("public static final class ").length())
subClassName = subline.substring(0, subline.indexOf(" "))
} else if (line.contains("public static int ")) {
def subline = line.substring(("public static int ").length())
def name = subline.substring(0, subline.indexOf("="))
rClassMap[subClassName].putAt(name, 1)
}
}
}
embeddedAarDirs.each { aarPath ->
def manifestFile = file("$aarPath/AndroidManifest.xml");
if(!manifestFile.exists()) {
manifestFile = file("./src/main/AndroidManifest.xml");
}
if(manifestFile.exists()) {
def aarManifest = new XmlParser().parse(manifestFile);
def aarPackageName = aarManifest.@package
String packagePath = aarPackageName.replace('.', '/')
// Generate the R.java file and map to current project's R.java
// This will recreate the class file
def rTxt = file("$aarPath/R.txt")
def rMap = new ConfigObject()
if (rTxt.exists()) {
rTxt.eachLine {
line ->
//noinspection GroovyUnusedAssignment
def (type, subclass, name, value) = line.tokenize(' ')
try {
if (rClassMap[subclass].containsKey(name)) {
rMap[subclass].putAt(name, type)
}
} catch (Exception e) {
e.printStackTrace()
}
}
}
def sb = "package $aarPackageName;" << '\n' << '\n'
sb << 'public final class R {' << '\n'
rMap.each {
subclass, values ->
sb << " public static final class $subclass {" << '\n'
values.each {
name, type ->
sb << " public static $type $name = ${libPackageName}.R.${subclass}.${name};" << '\n'
}
sb << " }" << '\n'
}
sb << '}' << '\n'
mkdir("$generated_rsrc_dir/$packagePath")
file("$generated_rsrc_dir/$packagePath/R.java").write(sb.toString())
embeddedRClasses += "$packagePath/R.class"
embeddedRClasses += "$packagePath/R\$*.class"
}
}
}`
from android-fat-aar.
Related Issues (20)
- Support apply plugin: 'com.android.application'? HOT 1
- unknown property 'packageReleaseResources' HOT 1
- Error:(61, 0) Could not find method compile() for arguments [project ':croplibrary', build_dijfgbzqt6st566goauqc2hu4$_run_closure3@60f84416] on project ':imageeditlibrary' of type org.gradle.api.Project. <a href="openFile:C:\Users\kingdee\Desktop\ImageEditor-Android-master\imageeditlibrary\build.gradle">Open File</a> HOT 1
- Doesn't work with new Android Gradle 3.0 plugin HOT 18
- java.lang.NoClassDefFoundError: Failed resolution of: *****/R$raw; HOT 8
- can't merge libs in a aar library HOT 4
- Error:Could not get unknown property 'prepareReleaseDependencies' for project ':someLib' of type org.gradle.api.Project. HOT 9
- why it accurs error ? HOT 5
- how to embedded .aar file HOT 4
- The fixed version !!!
- task generateRJava generates attr that can't find HOT 1
- Error:Could not get unknown property 'generateReleaseAssets' for project ':app' of type org.gradle.api.Project. HOT 2
- Could not find sdklib.jar (com.android.tools:sdklib:25.3.2).
- ERROR: Cannot choose between the following variants of project :ble-interface: HOT 2
- Maybe here is a good choice of fat-aar, supoort android gradle plugin 3.0.0-3.4.2 and gradle 4.6-5.1.1.
- [fix] fat-aar getMergedInputResourceSets
- 谁有gradle 3.6.1解决方案 HOT 1
- example 不能正常编译
- Failed resolution of: Landroidx/lifecycle/DefaultLifecycleObserver
- How to modify the exported file name?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from android-fat-aar.